一、default
- 直接放在同一个包,name为default不能被其他包访问
- 将name的定义前加public,可跨包访问
二、protected
- protected定义的变量,不能跨包使用,解决方法将protected改成public
- 通过新建类去继承父类,可以使用父类的age
三、public 可以被任意调用
四、封装的细节
合作项目定义一般都为private不让别人访问
但可以定义一个函数让其他类调用方法
- 设置外面可以调用的方法
package Test;
public class Test_first {
private String name;
public void setName(String name) { //可以让外界调用更改属性值
if(name!=null) { //在方法里面限制条件防止更改错误
this.name = name;
}else {
System.out.println("输入为空");
}
}
String getName() { //可以查看更改了什么属性
System.out.println(this.name);
return this.name;
}
public static void main(String[] args) {
Test_first Tf = new Test_first();
Tf.setName(null);
Tf.getName();
}
}
- 外界通过调用方法更改属性值
package Test1;
import Test.Test_first;
public class Test_2 {
public static void main(String[] args) {
Test_first Tf = new Test_first();
// Tf.age = 12; 不能直接赋值改变
Tf.setName("asd"); //调用public方法改变值
Tf.getName();
}
}
- 快捷生产get和set方法
通过勾选来选择生成的age的setAge方法