您的位置:首页 > 职场人生

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

2013-04-26 23:10 507 查看


------ 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?
JavaBean在JavaEE开发中的主要作用是封装数据。
一般定义这个包: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培训、期待与您交流!
----------

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐