Java基础

发布时间 2023-09-25 14:31:26作者: xiaoWang3486

equals()方法

  1. equals()方法的作用是比较两个字符串是否相等。

  2. 为避免空指针异常

finall关键字

  1. final关键字:可以修饰,变量,方法,类。

  2. final修饰的类无法被继承。

  3. final修饰的方法无法被覆盖,无法被重写。

  4. 当final修饰的变量没有赋值时,允许第一次赋值,第二次报错。

  5. final修饰的类创建的对象,对象不能再变,但内部的变量可以改变。

  6. final修饰的实例变量,一般添加static修饰,如static final CHINESE名为常量,常量的要求是常量名全部大写。常量是公开的,因为常量无法被改变。

package和import

package

  1. 目的: 方便对程序的管理,不同功能的类,放在不同的包里。

  2. 命名规范:公司域名倒序+项目名+模块名+功能名…

  3. 条件:只能出现在java语句的第一行。

  4. 当使用包机制的时候用java编译器:不能直接编译;需使用javac -d . Halloworld.java

  5. javac 编译 -d带包编译 .代表编译之后生成的东西放到当前目录下。

import

  1. import语句使用:当A类和B类不在同一个包下时,A类需要使用 B类时,需要用import进行导入。

  2. import语句必须在package包下,在class语句之上。

  3. import语句还可以用表示。会通过下面所调用的类制动辨别包名。 但只能识别类,只代表类明不能直接import java *。

  4. import 完整包名

抽象类

  1. 抽象类:类和类之间有共用特征,将这些特征提取出来,总结为一个类,就为抽象类。 语法

  2. 抽象类无法实例化,不能被new对象,。

  3. 抽象类只能被子类继承。

  4. 抽象类的子类也可以是抽象类。

  5. abstract不可以和final共同使用,因为抽象类必须要被子类继承实现。

  6. 抽象类虽然无法实例化,但是抽象类中也有构造方法供子类的构造方法中的super()使用。

  7. 抽象类中有抽象方法,也可以没有抽象该方法。但是抽象方法不能有方法体。而且抽象方法必须出现在抽象类中。

  8. 当一个类要继承抽象类时,当这个类为非抽象类时:必须将抽象类中的抽象方法覆盖,重写,实现。

  9. object中的一些没有方法体的方法,不一定是抽象方法,有些时底层调用c++的动态链接库。

访问权限

  1. private:私有的,只能在本类中使用。

  2. protected:受保护的

  3. public:公开的,任何位置都可以访问。

  4.  默认的
    
  5. 可以修饰:属性,类,接口,方法

  6. 类和接口只能用public和默认,不可以用private和protected

接口

  1. 基础语法:

a) 接口是一种引用数据类型,编译之后也用.class字节码文件。

b) 接口是完全抽象的。

c) 接口的定义,语法

d) 接口支持多继承。

e) 接口中只有常量和抽象方法

f) 接口中所有的元素都是由public修饰的。

g) 接口中的public abstract都是可以省略的。

h) 接口中所有的方法都是抽象的。所有接口中的方法不能有方法体。s

i) 接口中常量的public static final可以省略。

  1. 类和类之间叫继承,类和接口之间是继承。使用implements

  2. 接口中的方法都是public,当子类实现接口时,必须加public,访问级别只能更容易。

  3. 一个类可以实现多个接口。

  4. 接口也可以上下转型,当一个接口对象要调用其他类型接口的方法,需要转型。尽量用intenceof判断

  5. extends和implements可以共存,extends在前,implements在后。

  6. 降低耦合度,提高扩展力,符合ocp开闭原则。接口和多态一起使用才可以降低耦合度。

  7. 接口和抽象的区别

a) 接口是完全抽象的,抽象类是半抽象的。

b) 多个接口可以被一个类实现,抽象类是单继承的。

c) 接口中只有常量和抽象方法。

d) 抽象类中有构造方法,接口中没有构造方法。

内部类

  1. 内部类:

在类的内部又重新定义了一个类,成为内部类。

  1. 内部类分类:

静态内部类:类似静态变量。

实力内部类:类似实例变量。

局部内部类:类似局部变量。

匿名内部类

  1. 不创建实现接口的类,创建对象。而是直接在方法中new接口+