封装性:
把一个类要做的事情封起来像一个小盒子,一般来说,类外调用时就只能调用方法或是利用get()取值 set()修改,
内部的变量一般是不能直接获取的。
- 四种访问权限:
![]()
- 对于class的权限修饰只可以用public和default
- 缺省只能在同一个包被访问
package classobject.lzq03.Encapsulation;
/**
* @author Liuzhen
* @create 2021-11
*/
public class StudentStudyCourse {
public static void main(String[] args) {
Student st1=new Student();
st1.setNumber(20722028);
st1.setName("刘镇");
Course course1 =new Course();
course1.setScore(97);
course1.setName("Math");
st1.study(course1);
}
}
class Student
{
private int number;
private String name;
public void setName(String n)
{
name=n;
}
public String getName() {
return name;
}
public void setNumber(int s) {
number=s;
}
public int getNumber() {
return number;
}
public void study(Course c)
{
System.out.println( number+" "+name+" 学习的是"+c.getName()+"课程"+" 现在的学分是:"+c.getScore());
}
}
class Course
{
private int score;
private String name;
public void setName(String n)
{
name=n;
}
public String getName()
{
return name;
}
public void setScore(int s )
{
score = s;
}
public int getScore()
{
return score;
}
}
- 对属性赋值的先后顺序
- 默认初始化
0或false 或者 NULL - 显示初始化
int age = 21;5.在类中代码块赋值 取决②顺序{age = 22} - 构造器中的初始化
new User(22); - 对象.属性 或者 对象.方法
setAge(23);
package classobject.lzq03.Encapsulation;
/**
* @author Liuzhen
* @create 2021-11
*/
public class UserTest {
public static void main(String[] args) {
User u = new User();//默认 被 显式初始化覆盖
System.out.println(u.age + "显式初始化");
User u1 = new User(2); //构造器
System.out.println(u1.age + "构造器初始化");
u1.setAge(3); //对象.方法
System.out.println(u1.age + "对象.方法()初始化");
}
}
class User{
String name;
int age = 1; //显式初始化
public User(){
}
public User(int a){
age = a;
}
public void setAge(int a){
age = a;
}
}

浙公网安备 33010602011771号