[JAVA学习笔记] 类与对象 - 封装
访问控制
类访问控制修饰符
类的访问控制级别有两种:public
与默认级别(声明时不带修饰符)
- Public级别:可以从任何地方实例化公共类(由
public
修饰的类),公共类必须保存在与类同名的文件中,且拓展名必须为java
。一个Java源文件只能包含一个公共类(与源文件名称相同),但是可以包含多个非公共类。 - 默认级别:只能被同一个包的其他类使用。
类成员访问控制修饰符
类成员包括但不限于方法、字段、构造方法,类成员可以具有以下四种访问控制级别之一:public
、protected
、private
、默认级别(不带修饰符)
访问级别 | 其他包的类 | 同包的类 | 子类 | 同类 |
---|---|---|---|---|
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); //不需要使用类名
}
}
[ * ]博客中转载的文章均已标明出处与来源,若无意产生侵权行为深表歉意,需要删除或更改请联系博主: 2245998470[at]qq.com