Java学习——基础知识补充

发布时间 2023-09-07 19:38:16作者: 风一样的我1

1.作用域

1.1 public

定义为public的class、interface可以被其他任何类访问,定义为public的field、method可以被其他类访问,前提是首先有访问这个类的权限。
注意:
一个.java文件只能包含一个public类,但可以包含多个非public类。如果有public类,文件名必须和public类的名字相同。
如果不确定是否需要public,就不声明为public,即尽可能少地暴露对外的字段和方法。

1.2 private

定义为private的field、method无法被其他类访问,private访问权限被限定在class的内部。由于Java支持嵌套类,如果一个类内部还定义了嵌套类,那么,嵌套类拥有访问private的权限。

1.3 protected

protected作用于继承关系。定义为protected的字段和方法可以被子类访问,以及子类的子类

1.4 package

包作用域是指一个类允许访问同一个package的没有public、private修饰的class,以及没有public、protected、private修饰的字段和方法。只要在同一个包,就可以访问package权限的class、field和method,同一个指包名必须完全一致,包没有父子关系
把方法定义为package权限有助于测试,因为测试类和被测试类只要位于同一个package,测试代码就可以访问被测试类的package权限方法。

package abc;
// package权限的类:
class Hello {
    // package权限的方法:
    void hi() {
    }
}

1.5 final

用final修饰class可以阻止被继承
用final修饰method可以阻止被子类覆写
用final修饰field可以阻止被重新赋值
用final修饰局部变量可以阻止被重新赋值

2.数组和List

数组添加删除元素比较麻烦,因此可以使用List接口。List接口实现了常用的ArrayList、LinkedList,经常使用的是ArrayList

// 初始化
int[] ns = { 1, 4, 9, 16, 25 };
List<String> list = new ArrayList<>();
//添加元素
list.add("2");
//按照索引添加
list.add(2,"2");
//删除元素
list.remove("2");
/按照索引删除
list.remove(2);
//按照索引获取值
list.get(2);