[JAVA学习笔记] 类与对象 - 封装

访问控制

类访问控制修饰符

类的访问控制级别有两种:public与默认级别(声明时不带修饰符)

  • Public级别:可以从任何地方实例化公共类(由public修饰的类),公共类必须保存在与类同名的文件中,且拓展名必须为java。一个Java源文件只能包含一个公共类(与源文件名称相同),但是可以包含多个非公共类。
  • 默认级别:只能被同一个包的其他类使用。

类成员访问控制修饰符

类成员包括但不限于方法、字段、构造方法,类成员可以具有以下四种访问控制级别之一:publicprotectedprivate、默认级别(不带修饰符)

访问级别 其他包的类 同包的类 子类 同类
public
protected
默认
private

this

this引用当前代码的对象

final

类字段和局部变量可以使用final修饰,被final修饰的变量或字段无法更改其值。
也可以将一个方法定义为final,防止方法在子类中被覆盖。

import使用其他类

我们可以使用import来导入其他包,例如:

package ye;  //import语句必须位于package语句后
import java.time.Clock; //导入java.time的Clock类
import java.util.* //导入java.util的所有类

静态成员

静态成员即不需要先实例化类即可调用的类成员,类的静态成员不会与一个类实例绑定,我们可以在没有实例的情况下使用它们,例如作为类入口点的main方法就是静态的,因为必须在没有创建任何对象之前调用他。我们可以使用static来声明静态成员:

public static int a;

静态成员的具体特点可以参考下面的例子:

public class StaticTest{
    //方法sum1与sum2均为求和方法
    public static int sum1(int... nums){   //sum1使用static修饰,为静态成员
        int sum = 0;
        for (int num: nums) {
            sum += num;
        }
        return sum;
    }

    public int sum2(int... nums){  //sum2未使用static修饰
        int sum = 0;
        for (int num: nums) {
            sum += num;
        }
        return sum;
    }
    public static void main(String[] args){
        int res1 = sum1(100, 8080);  //sum1方法可以直接调用
        StaticTest obj = new StaticTest();  //sum2调用时应先创建一个对象
        int res2 = obj.sum2(100, 8080);  //在创建的对象中才能调用sum2方法
        System.out.println(res1);
        System.out.println(res2);
    }
}

静态导入

当我们需要导入类的静态成员时,可以使用import static语法来导入类中的静态成员,这样调用导入的的静态字段时就不需要再使用类名:

import static java.util.Calendar.MONDAY;  //导入java.util.Calendar类中的静态字段MONDAY

public class Monday {
    public static void main(String[] args){
        System.out.println(MONDAY);  //不需要使用类名
    }
}
posted @ 2021-09-08 04:50  Ye'sBlog  阅读(94)  评论(0编辑  收藏  举报