Java知识点

2021/7/10 17:13:38

本文主要是介绍Java知识点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

给函数传递参数时, 若为基本类型,则为值拷贝,是两个不同的变量;若为对象,则为引用指向同一个对象。

y为数,if(x=y)这种使用=方式会报错, java 不会自动的将 int 转换成 boolean 类型

比较两个对象的内容, 使用所有对象(不包括基本类型)中都存在的equals()方法

对于 == 和 != 这两个关系运算符来说,它们有两种使用场景:

  • 作用于基本数据类型: 比较的是值
  • 作用于对象: 比较的是内存地址

equals()的两种使用情况:

  • 情况 1:类没有覆盖 equals() 方法。则通过 equals() 比较该类的两个对象时,等价于通过 “==” 比较这两个对象。
  • 情况 2:类覆盖了 equals() 方法。一般来说,我们都会覆盖 equals() 方法来比较两个对象的内容而不是其引用

&& 和|| 运算符具有短路特性

增强版 for 循环, 定义了一个 float 类型的变量 x,继而将每一个 f 的元素赋值给它.

for(float x: f){
    System.out.println(x);
}

面向对象具有四大基本特点 抽象:属性和行为形成类,用类去构造实例;封装:属性和行为封装成类,来严格的访问控制;继承:在类基础上扩展形成新类;多态:同一函数具有不同功能。

访问权限, 从“最大权限”到“最小权限”依次是public、protected、包访问权限、private

所谓包访问权限,就是如果不对这个成员(类、字段、方法)提供访问修饰符,那么这个成员就可以被同一个包中的所有方法访问,但是这个包之外的成员无法访问。包访问权限也称默认访问权限

protected也提供包访问权限,不同于包访问权限的是:即使父类和子类不在同一个包下,子类也可以访问父类中具有 protected 访问权限的成员。(而对于包访问权限来说,如果子类和父类不在一个包下,子类是无法访问父类中具有包访问权限的成员的)

构造函数总是伴随着 new 操作符的执行被调用, 构造函数与类同名;每个类可以有一个以上的构造函数;构造函数可以有 0 个、1 个或多个参数;构造函数没有返回值;类中没有构造器,那么编译器就会自动为你创建一个无参构造器,一旦你显式地定义了构造器(无论有参还是无参),编译器就不会自动为你创建无参构造器。

重载 允许方法具有相同的方法名但接收的参数不同。

this 关键字 只能在非静态方法内部使用,static 方法中不会出现 this。因为 static 是为类而创建的,不需要任何对象。

初始化

  • 类的每个基本类型数据成员保证都会有一个初始值。如果我们没有显式地给域/成员变量赋予初值,那么就会被自动地赋为默认值————自动初始化。
  • 当使用构造函数来进行初始化时,同样先进行自动初始化在进行构造函数的。
  • 显示初始化,在定义成员变量时就对其指定值。

初始化块 代码块的调用顺序为:静态初始化块、非静态初始化块、构造函数

class Root { 
    // 静态初始化块
    static{
        System.out.println("Root的静态初始化块");
    }
    // 非静态初始化块
    {
        System.out.println("Root的普通初始化块");
    }   
    public Root(){
        System.out.println("Root的无参构造器");
    }
}

重写重载 重写不仅方法名相同,参数列表和返回类型也相同;@Override注解即表示方法重写,不过这个也可以不写,JVM 能够自动的识别方法覆盖。在覆盖一个方法的时候,子类方法不能低于父类方法的可见性。特别是, 如果超类方法是 public, 子类方法一定要声明为 public。

向上转型和向下转型

  • 父类引用变量指向子类对象后,只能使用父类已声明的方法,但方法如果被重写会执行子类的方法,如果方法未被重写那么将执行父类的方法。
Animal cat = new Cat(...); // 向上转型 Cat->Animal
  • 将某个父类的对象引用转换成子类的对象引用,调用一些子类特有而父类没有的方法。
Animal animal = new Cat(...); // 向上转型 Cat->Animal
Cat cat = (Cat) animal; // 向下转型 

抽象类 抽象方法和抽象类都必须声明为 abstract,但除了抽象方法之外,抽象类还可以包含具体数据和具体方法。使用extends来扩展子类。

接口 关键字 interface 而不是 class 来创建接口,接口中是不能包含具体方法的。使用 implement来扩展实现类。接口中是允许出现常量的,将被自动被设置为 public static final 类型。

为什么有抽象类还要有接口,因为一个类可以实现多个接口,但是一个类只能继承一个父类



这篇关于Java知识点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程