论坛首页 入门技术论坛

大三第一学期Java课程期末复习笔记整理 (2)

浏览 1843 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-01-27   最后修改:2010-01-28
OO


大三第一学期Java课程期末复习笔记整理 (1)

29.内部类

      1.内部类可以声明为 private或是protected,但是,如果内部类是private的话,那么外部类之外 将无法访问这个内部类了。

      2.内部类的创建方式只能“外部类.内部类”,无论是在外部类中里外,并且一定要在外部类对象的基础上: 

 

       OutClass  oc = new OutClass();

        OutClass.InClass oi = new oc.new InClass();

      3.内部类是static,创建方式:

 

OutClass.staticClass os = new OutClass.static();

        4.内部类中可以直接访问外部类的所有成员,包括private protected ,但不能通过内部类对象来访问外部类的成员。而外部类中无法访问内部类的成员,外部类的对象也不能访问内部类的成员。如下图所示

 

32.equals方法

 

    默认: 

public boolean equals (Object obj){
	return (this == obj);
}

   比较的是两个对象引用在内存中是否指向同一个对象。

 

33 .匿名类没有名称,也没有构造方法。


34.toString方法:

     默认:所属类名@(一个无符号的十六进制数,一般是对象所在的内存地址)


35.“克隆”

       1. newObject = oldObject.clone();

           这名话的意思是:将oldObject 复制到 一个新的内存地址中去,并让newObject的引用指向新的对象。

        2.默认情况下,java中自定义的类都不具有克隆能力,必须实现Cloneable接口之后才行。否则会抛出异常:CloneNotSupportException。
        3. 注意深拷贝和浅拷贝。

             

 

36.   语句 obj instanceof A : obj是否是A类或其子类的对象。


37. 字符串转化成Boolean类型

Boolean b1 = new Boolean("true");   //=>true
Boolean b2 = new Boolean("yes");   // =>false


38.round()的返回值

        对于float,方法返回的是四舍五入后的int值

        对于double,方法返回的是四舍五入后的long值


39.

String s1 = "Hello!";
String s2 = s1.concat("World");



    有关字符串的方法,操作后不改变s1的值。


40.String中的一些方法


     indexOf:

    

String s = "My name is nileader";

int i1 = s.indexOf("na");             //i1 = 2;
int i2 = s.indexOf("is",3);           //i2 = 8;
int i3 = s.lastIndexOf("ni",15);   //i3 = 11;








    

     substring(int begIndex, int endIndex)

 

     没有endindex参数的时候,默认是从begIndex到结尾,如果有了这个参数,则是从begIndex到endIndex-1

 

41.有关String,始终记住:

     1.String类对象是个常量,其值在创建之后不可改变。

     2 .String类中的任何一个方法如果要修改String对象的值,都是创建一个包含修改结果的新的String对象并返回。


42.String s = "Hello"+"nileader"+"!";

      对于如上语句的执行,java编译器不会生成三个字符串后在给s,而是:

 

   String s  = new StringBuilder("Hello").append("nileader").append("!").toString();
 

 

43. 声明数组时,只声明 一个用来操作数组的引用,不分配实际内存大小,所以:

 

  int[8] a;  //这样的语句是错误的,在声明数组时是不可以指定数组的大小的

 

44.数组中要注意的一点是,

Integer[] i = new Integer[3];    //此时,i 中每个元素都是null

   复合类丰创建完其对象时,全天候元素均是null。


45.数组创建过程中:

 

    length 代表的只是数组中可能存在的最大元素个数,并不是实际对象的个数。

46.有关Arrays的fill()方法。

 

这是因为,当fill方法操作的是一个复合类型时,那么实际上是将这个对象的引用赋给数组中待复制的元素。

 

说得通俗点:

 

     以上程序的相关语句可以描述如下:

 

   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics