equals()方法
-
equals()方法的作用是比较两个字符串是否相等。
-
为避免空指针异常
finall关键字
-
final关键字:可以修饰,变量,方法,类。
-
final修饰的类无法被继承。
-
final修饰的方法无法被覆盖,无法被重写。
-
当final修饰的变量没有赋值时,允许第一次赋值,第二次报错。
-
final修饰的类创建的对象,对象不能再变,但内部的变量可以改变。
-
final修饰的实例变量,一般添加static修饰,如static final CHINESE名为常量,常量的要求是常量名全部大写。常量是公开的,因为常量无法被改变。
package和import
package
-
目的: 方便对程序的管理,不同功能的类,放在不同的包里。
-
命名规范:公司域名倒序+项目名+模块名+功能名…
-
条件:只能出现在java语句的第一行。
-
当使用包机制的时候用java编译器:不能直接编译;需使用javac -d . Halloworld.java
-
javac 编译 -d带包编译 .代表编译之后生成的东西放到当前目录下。
import
-
import语句使用:当A类和B类不在同一个包下时,A类需要使用 B类时,需要用import进行导入。
-
import语句必须在package包下,在class语句之上。
-
import语句还可以用表示。会通过下面所调用的类制动辨别包名。 但只能识别类,只代表类明不能直接import java *。
-
import 完整包名
抽象类
-
抽象类:类和类之间有共用特征,将这些特征提取出来,总结为一个类,就为抽象类。 语法
-
抽象类无法实例化,不能被new对象,。
-
抽象类只能被子类继承。
-
抽象类的子类也可以是抽象类。
-
abstract不可以和final共同使用,因为抽象类必须要被子类继承实现。
-
抽象类虽然无法实例化,但是抽象类中也有构造方法供子类的构造方法中的super()使用。
-
抽象类中有抽象方法,也可以没有抽象该方法。但是抽象方法不能有方法体。而且抽象方法必须出现在抽象类中。
-
当一个类要继承抽象类时,当这个类为非抽象类时:必须将抽象类中的抽象方法覆盖,重写,实现。
-
object中的一些没有方法体的方法,不一定是抽象方法,有些时底层调用c++的动态链接库。
访问权限
-
private:私有的,只能在本类中使用。
-
protected:受保护的
-
public:公开的,任何位置都可以访问。
-
默认的
-
可以修饰:属性,类,接口,方法
-
类和接口只能用public和默认,不可以用private和protected
接口
- 基础语法:
a) 接口是一种引用数据类型,编译之后也用.class字节码文件。
b) 接口是完全抽象的。
c) 接口的定义,语法
d) 接口支持多继承。
e) 接口中只有常量和抽象方法
f) 接口中所有的元素都是由public修饰的。
g) 接口中的public abstract都是可以省略的。
h) 接口中所有的方法都是抽象的。所有接口中的方法不能有方法体。s
i) 接口中常量的public static final可以省略。
-
类和类之间叫继承,类和接口之间是继承。使用implements
-
接口中的方法都是public,当子类实现接口时,必须加public,访问级别只能更容易。
-
一个类可以实现多个接口。
-
接口也可以上下转型,当一个接口对象要调用其他类型接口的方法,需要转型。尽量用intenceof判断
-
extends和implements可以共存,extends在前,implements在后。
-
降低耦合度,提高扩展力,符合ocp开闭原则。接口和多态一起使用才可以降低耦合度。
-
接口和抽象的区别
a) 接口是完全抽象的,抽象类是半抽象的。
b) 多个接口可以被一个类实现,抽象类是单继承的。
c) 接口中只有常量和抽象方法。
d) 抽象类中有构造方法,接口中没有构造方法。
内部类
- 内部类:
在类的内部又重新定义了一个类,成为内部类。
- 内部类分类:
静态内部类:类似静态变量。
实力内部类:类似实例变量。
局部内部类:类似局部变量。
匿名内部类
- 不创建实现接口的类,创建对象。而是直接在方法中new接口+