JAVA学习经典重点笔记(保证终生受用) WORD 2003版本

  • 格式:pdf
  • 大小:351.75 KB
  • 文档页数:2

(1)一个字符串就是一个String的匿名对象;String的内容一旦声明则无法改变。

(2)This()必须放在构造方法的首行。

在使用this调用构造方法的时候至少有一个构造方法是没有使用this()调用的,而次构造方法将作为调用的出口,一般这个出口都会使用无参构造函数。

This有一个最重要的概念——表示当前对象。

当前正在调用类中方法的对象,成为当前对象。

所以this.属性就表示当前对象的属性。

(3)Static的方法只能调用static的属性和方法,不能调用非static的属性或方法。

因为静态属性和方法可以在没有实例化对象的时候调用,而类中的普通方法和普通属性,肯定只有在对象实例化之后才有可能调用。

(4)Main(String args[])用于接收参数,就是java类名参数1参数2参数3
★构造方法私有化后,则就成单例问题了,单例声明:private static类名对象名=new类名(5)直接在类中定义的代码块称为构造块。

构造块会重复调用多次,构造块会优先于构造方法执行。

使用static关键词声明的代码块称为静态块,静态块优先于主方法执行,静态块用于对静态属性初始化,优先于构造块执行,而且只执行一次。

(6)内部类的唯一优点:在于可以方便的访问外部类中的私有成员。

如果要在外部直接使用内部类的实例化对象:外部类.内部类内部类对象=外部类实例.new内部类实例()
一个内部类如果使用static关键字声明的话,则此内部类就将成为外部类,可以直接通过外部类.内部类的形式访问。

如:Outer.Inner in=new Outer.Inner();
(7)在方法中定义的内部类,可以直接访问外部类中的各个成员,但如果要访问方法中的参数,则在参数上要使用final关键字声明。

(8)链表:对于单向链表,主要是传递的引用数据类型,开发的意义不大,面试的意义很大。

主要是应用内部类。

(李兴华JAVA培训14课)
(9)子类一定会调用到父类的构造方法,默认是有一个super()调用父类的无参构造方法。

(10)在使用this调用其他构造方法的时候,至少留一个构造方法,是没有使用this调用的,
作为统一的出口,肯定调用父类的构造方法。

(11)父类方法是prvate访问权限,子类中使用的是default访问权限,是重新定义而不是重
写。

(12)如果希望调用父类中被覆盖的方法,只能通过super.fun()方法调用
(13)final声明的类不能继承、方法不能覆盖、变量不能修改。

如果用final申明一个常量的话,
则常量的标识符必须全部大写。

使用public static final声明的常量为全局常量。

(14)抽象类:必须被子类继承,而且被继承的子类需要实现抽象类中的全部抽象方法。

抽象
方法是只声明不实现的方法,即没有{}大括号,同时用abstract关键字。

有抽象方法的类必须定义成抽象类。

(15)接口是一个特殊的类,在JAVA中接口是由抽象方法和全局常量组成。

(16)在接口中public static final定义全局常量和public static定义抽象方法时可以省略。

(17)一个接口不可以继承一个抽象类,但是一个接口却可以同时继承多个接口。

(18)对象的多态性主要指的是,子类和父类对象的相互转换关系
向上转型:父类父类对象=子类实例(自动完成)A a=new B()
向下转型:子类子类对象=(子类)父类实例(强制完成)B b=(B)new A()在使用向下转型的时候一定要先使用向上转型。

(19)instanceof关键字来判断传进的对象到底是哪个类的实例。

用法:
对象instanceof类 返回Boolean类型的数据。

(20)为了保证对象的向下转型操作正确,在操作之前最好加上instanceof关键字进行判断。

在继承关系中,父类的设计很重要。

(21)抽象类本身最大的用处就是在于模板设计,“人”是模板,“学生”、“工人”是该模板下
的内容。

利用的是子类为父类实例化,因为会发生自动向上转型,同时调用的方法永远是被覆盖的方法。

(22)正常情况下,一个接口的子类要实现全部的抽象方法。

(23)在开发中当遇到与字符串比较时,要把字符串放到前面,这样可以避免空指向异常。

(24)对于一个完整的类,应该覆写Object类中的一下三个方法:
toString():对象打印时调用public String toString()(如果不覆盖打印的是对象地址)equal():对象比较时使用public boolean equals(Object obj)一般都要通过instanceof判断是不是属于该类的对象,再进行下一步操作。

hashCode()
(25)父类的构造方法执行完之后实际上是为父类中的属性初始化,但是未执行完的话,子类
的构造方法就永远不可能调用,那么子类中所有的属性都无法初始化,无法初始化,那么默认的值就是0。

(26)开发中记住一个原则:一个类永远不要去继承一个已经实现好的类,要么继承抽象类,要
么实现接口。