黑马程序员----JAVA基础之泛型和javabean

------ android培训java培训、期待与您交流! ----------



一 泛型 


(1)什么是泛型

      泛型是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类。可以把类型参数看作是使用参数化类型时指定的类型的一个占位符,就像方法的形式参数是运行时传递的值的占位符一样。不确定的类型,泛型是jdk5后的新特性。

 (2)泛型的好处:
      A:将问题移到了编译时期.
      B:不需要在进强制转装换了.
      C:优化了代码设计.

(3)泛型在集合中的使用

 //Collection<String> c = new ArrayList<String>();
        //List<String> c = new ArrayList<String>();
        //ArrayList<String> array = new ArrayList<String>();
        ArrayList<Student> array = new ArrayList<Student>();
        array.add(new Student("lili",20));
        array.add(new Student("tom",25));
        array.add(new Student("jack",23));
        Iterator<Student> it = array.iterator();
        while(it.hasNext())
        {
            Student s = it.next();
            sop(s.getName()+"***"+s.getAge());
        }

(4)泛型通配符

    ? 是一个类型通配符。它读作“问号”。

void printList(List<?> l) {
for (Object o : l)
System.out.println(o);
}

  上面代码中的问号是一个类型通配符。它读作“问号”。List<?> 是任何泛型 List 的父类型,所以您完全可以将 List<Object>、List<Integer> 或 List<List<List<Flutzpah>>> 传递给 printList()。


 (4)自定义泛型

      自定义泛型前要先声名,声名分两种:

      自定义在方法上,:那么就定义泛型在返回值的前面,对这个方法有效

      如果定义在类名后面,那么就对整个类有效,下面再用的时候就不用声名了.

      注意,泛型只适用于对象,不可以用基本数据类型


二 javabean

(1)什么是javabean?

JavaBeanJavaEE开发中的主要作用是封装数据。

一般定义这个包:domain

记住: 字段与属性 与方法的区别

private String province;----字段

//getProvince的get去掉,P改成小写,成了provice,叫属性,这个是provice的get属性

public String getProvince() {

return province;

}

//setProvince的set去掉,P改成小写,成了provice,叫属性,这个是provice的set属性

public void setProvince(String province) {

this.province = province;

}

//这个叫方法

public void method() {

System.out.println("方法");

}

(2)JSP中操作JavaBean的动作元素:

(一)<jsp:useBean/>

作用:在指定的域范围内查找指定名称的对象,若不存在,创建一个。

属性:

id:查找的名称

class:类型。全类名

scope:范围。默认是page。可选值:page|request|session|application

注意:如果有标签主体内容,那么只有在创建对象时才会显示。

 <jsp:useBean id="p" class="com.itheima.domain.Person" scope="page">

标签主体内容//这个内容只有在创建对象时才会显示。

    </jsp:useBean>

    <%--标签的原理

    com.itheima.domain.Person p = null;

    synchronized(this){

    

    p = (com.itheima.domain.Person)pageContext.getAttribute("p",PageContext.PAGE_SCOPE);

     if(p==null){

    pageContext.setAttribute("p",new com.itheima.domain.Person(),PageContext.PAGE_SCOPE);

     }

    }

    --%>

(二)<jsp:setProperty/>

作用:设置属性。调用setter方法。类型的自动转换,仅限基本类型

属性:

property:属性名称,对应的setter方法。请求参数时支持通配符*.前提请求参数的名称和属性一致

name:域对象中的名称

A: value:设置的值。

property:表示要修改的属性去掉前面的set或get name表示象名 value表示值.

<jsp:setProperty property="name" name="p" value="明月姐"/>

    <jsp:setProperty property="age" name="p" value="18"/>

<%=p.getName()%>

     <%=p.getAge()%>

B: param:请求参数名称填充属性的值。

就是用Url的?后面的与param属性值对应的value值去设.

<!-- http://localhost:8080/day08/6.jsp?age=28&name=abc -->

     <jsp:setProperty property="age" name="p" param="age"/>

     <jsp:setProperty property="name" name="p" param="name"/>

C: 如果用通配符:

以下一句相当于上面两句,把求参数的名称和属性一致的全部赋值

<jsp:setProperty property="*" name="p"/>

(三)<jsp:getProperty/>

作用:获取属性。调用getter方法。把结果输出到页面上。如果为空对象,则输出null。

只需要两个参数,属性名和对象名

      <jsp:getProperty property="age" name="p"/>

      <jsp:getProperty property="birthday" name="p"/>

JavaBean的特点:

称之为VO:Value Object。DO:Data Object。POJO:Plain Object Java Object?

0、类声明为public的。

1、有默认的构造方法。无参的构造方法。

2、所有的字段都是私有的。 Field

3、提供对外的getter或setter方法。只有getter方法的字段,只读字段。

private String name;

public String getName(){//name字段的读属性

return name;

}

public void setName(String name){//name字段的写属性

this.name = name;

}

------ android培训java培训、期待与您交流! ----------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值