黑马程序员———JAVA面向对象程序设计基础笔记

时间:2023-02-14 12:01:44

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

通过对Java基础知识的学习,现将在开发过程中经常用到的知识汇总:

 

什么时候使用静态?

 1.什么时候定义静态变量(类变量):

   当对象中出现共享数据时,

 2  什么时候定义静态函数?

   当功能内部没有访问到非静态(对象的特有数据)

 静态变量与静态函数的加载 是随类的加载而加载的

 

在对子类对象进行初始化时,父类的构造函数也会运行,

那是因为子类的构造函数默认第一行有一条隐式的语句 super()

Super():会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是Super().

 

为什么子类一定要访问父类中的构造函数。

 

因为父类中的数据子类可以直接获取,所以子类对象在建立里,需要先查看父类是如何对这些数据进行初始化的,

所以子类在对象初始化时,要先访问一下父类中的构造函数。

如是要访问父类中指定的构造函数,可以通过手动定义super语句的方式来指定。

 

注意:super语句一定定义在子类构造函数的第一行。

子类的所有构造函数,默认都会访问父类中空参数的构造函数。

因为子类中每一个构造函数的第一行都有一句隐式super().

 

当父类中没有空参数的构造函数进,子类必须手动的通过super语句的形式来指定要访问父类中的构造函数,

当然,子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数

子类中至少会有一个构造函数会访问父类中的构造函数。

 

Final: 修饰符

1.可以修饰类,函数,变量

2.final 修饰的类不可以被继承,为了避免被继承,被子类复写功能。

3.被final 修饰的方法不可以被复写。

4.final修饰的变量是一个常量只能赋值一次,既可以修饰成员变更,也可以修饰局部变量

   当描述事物时,一些数据的出现是固定的,那么这时为了增强阅读性,都给这些值起了个名字,方便于阅读,而这个值不需要改变,所以加上final修饰,作为常量,常量的书写规范所有字母都大写,如果由多个单词组成,单词间通过_连接

5.内部类定义在类中的局部位置上时,只能访问该局部被 final 修饰的变量。

 

抽象类的特点:

1,  抽象方法一定在抽象类中。

2,  抽象方法和抽象类都必须被abstract 关键字修饰

3,  抽象类不可以用new创建,因为调用抽象方法没意义。

4,  抽象类中的抽象方法要被调用,必须由子类复写所有的抽象方法后,建立子类对象调用,如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。

 

内部类:

内部类的访问规则:

1. 内部类可以直接访问外部类中的成员,包括私有。

   之所以可以直接访问外部类中的成员,是因为内部类中持有一个外部类的引用,格式 外部类名。This

2. 外部类要访问内部内,必须建立内部类对象。

 

访问格式

1. 当内部类定义在外部类的成员位置上,而非私用,可以在外部其他类中

   可以直接建立内部类对象

 

格式  外部类名。内部类名 变量名 = 外部类对象。内部类对象;

2. 内部类在成员位置上,就可以被成员修饰符所修饰

 

比如,private: 将内部类在外部类中进行封装

      Static:内部类就具备staticr 特性

      当内部类被static修饰后,只能直接访问外部类的static成员,出现了访问局限

 

在外部其他类中, 如何直接访问static内部类的非静态成员呢?

 

New 外部类。内部类()。非静态成员

 

在外部其他类中, 如何直接访问static内部类的静态成员呢?

 

外部类。内部类。静态成员

 

注意:当内部类定义了静态成员,该内部类必须是static.

      当外部类的静态方法访问内部类时,内部类也必须是static. 

 

总之: 当描述事物时,事物的内部还有事物,该事物用内部类来描述。

因为内部事务在使用外部事物的内容。

 

 

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

详细请查看:http://edu.csdn.net/heima