随笔 - 15, 文章 - 0, 评论 - 5, 引用 - 0
数据加载中……

java匿名内部类,参数必须是final类型

匿名内部类实用定义在外部的变量,该变量必须是final类型
因为匿名内部类没有构造函数,无法对引用变量进行初始化。所以引用的参数必须是在外部已经初始化的final变量。

posted @ 2008-07-27 11:19 zhouzhou@ 阅读(1040) | 评论 (1)编辑 收藏

多态

多态性:发送消息给某个对象,让该对象自行决定响应何种行为。
通过将子类对象引用赋值给超类对象引用变量来实现动态方法调用。

java 的这种机制遵循一个原则:当超类对象引用变量引用子类对象时,被引用对象的类型而不是引用变量的类型决定了调用谁的成员方法,但是这个被调用的方法必须是在超类中定义过的,也就是说被子类覆盖的方法

posted @ 2008-07-27 11:18 zhouzhou@ 阅读(64) | 评论 (0)编辑 收藏

for的新特性

package test;
import java.util.*;
import java.io.*;
public class Properties_test
{
public static void main(String[] args)
{
try
{
Properties roles =new Properties();
roles.load(new FileInputStream("c:/hpj-users.properties"));
Enumeration emnu = roles.propertyNames();
while(emnu.hasMoreElements())
{
String key = emnu.nextElement().toString();
String value = roles.getProperty(key);
System.out.println(key+"_"+Token(value).size()+"_"+value);
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}

public static List<String> Token(String s)
{
List<String> list = new ArrayList<String>();
try
{
String[] args = s.split(",");
for (String arg :args)
{
list.add(arg.trim());
}
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
return list;
}

}
问题补充:想具体了解下collection-based for 循环
就是:for (String arg :args)
不了解这个for循环的含义,中间的:是什么意思
这个循环是按什么规则循环的,一般的循环不是fro( ?;? ;? );


泛性(j2SE 5.0的新特性)

for (String arg :args)
{
list.add(arg.trim());
}

增强后的for循环(j2SE 5.0的新特性)

主要作用简化了之前的for循环:
相当与 (这个你看得懂吧)
for(int i=0;i<args.length;i++){
list.add(args[i]);
}

格式: for(类型 参数名 : 数组或集合类){ }
类型必需与数组或集合类的类型相同,
参数的值是动态的,所有数组或集合类的每一个值。

 

一。数组:
int[] num = {1,2,3,4,5};
for(int arg:num){
System.out.println(arg);
}

二。集合类:
ArrayList<String> list = new ArrayList<String>();
list.add("A");
list.add("B");
list.add("C");
list.add("D");
for(String arg: list){
System.out.println(arg);
}

posted @ 2008-07-27 11:16 zhouzhou@ 阅读(111) | 评论 (0)编辑 收藏

覆写于重载

比如说原来class A有一个方法:
public void test(String a) {
...
}

现在class B extends A
那么你如果在class B中写一个方法
public void test(String a) {
...
}
这就叫覆写(overridden)
如果你象下面这样写了:
public void test(Integer i) {
...
}

public int test(Socket socket) {
...
}
或...
总之,方法说明部分如果和父类的方法完全一样的,就是覆写(overridden)
参数不同的情况下就算重载了。

posted @ 2008-07-27 11:07 zhouzhou@ 阅读(43) | 评论 (0)编辑 收藏

仅列出标题
共2页: 上一页 1 2