//当成员变量没有被private修饰的时候
public class Student {
String name;//名字
int age;//年龄
}
//其他类可以随意调用其中成员变量进行赋值(不符合要求的进行赋值 比如年龄给负值万岁等)
public class StudentDemo01 {
public static void main(String[] args) {
Student student=new Student();
student.age=10000;
System.out.println(student.age);
}
}
get set的由来
//当用到private的时候,其他类不能直接访问成员变量 就要在类中定义方法(规则上方法名都用set大驼峰变量名get大驼峰变量名)进行设置值和获取值 private保证了代码的安全性
public class Student {
private String name;//名字
private int age;//年龄
//年龄定义范围
public void setAge(int a){
if(a>0&&a<120)
age=a;
else
System.out.println("你年龄输入错误了");
}
public int getAge(){
return age;
}
}
public class StudentDemo01 {
public static void main(String[] args) {
Student student=new Student();
student.setAge(130);
System.out.println(student.getAge());
}
}
//问题 其他类调用setAge时不知道a代表的是啥该如何输入 这时就要写成和成员变量名相同
this 的由来
//当setAge方法形参名和成员变量相同时 age=age 是没有用到成员方法的
public class Student {
private String name;//名字
private int age;//年龄
public void setAge(int age){
if(age>0&&age<120)
age=age;
else
System.out.println("你年龄输入错误了");
}
public int getAge(){
return age;
}
}
//这时就用到了this关键字 this.age 表示成员变量age
public class Student {
private String name;//名字
private int age;//年龄
public void setAge(int age){
if(age>0&&age<120)
this.age=age;
else
System.out.println("你年龄输入错误了");
}
public int getAge(){
return age;
}
}