未使用封装的问题
单独给属性赋值,会存在数据不正确的情况,属性值不安全性。
封装作用:就是为了解决属性安全性的问题
【不能直接给属性赋值,而是通过其它方法给它赋值和取值】
封装的步骤
1、将属性修饰符变为private; //外部的类不能直接访问属性
2、提供公有的赋值和取值方法
快捷键 source get/set 一键生成
//封装作用:保护属性,解决属性安全性问题[不让]
//提供公有的方法让外部访问
/*
* 步骤
* 1.将属性的修饰符设为private
* 2.提供公有的二个方法(一个赋值、一个取值)
*
*
*/
public class Student {
private String name ;
private int age ;
//提供赋值方法
//语法:public void set+属性名首字母大写
//此方法的作用可以对外面传递的值进行判断,不符合规范的给出提示
public void setAge(int a) {
if (age<0) {
System.out.println("年龄不符合规范");
}else {
age = a ; //将传递的合规的年龄赋值给属性
}
}
//提供公有的取值方法【无参有返回值】
public int getAge() {
return age ; //返回属性值
}
//设置公有的name值赋的方法[赋值无返回值]
public void setName(String name) {
//在这里可以做判断
this.name = name ;
}
//设置公有的给name值的方法[返回和属性一致类型]
public String getName() {
return name ;
}
public void show() {
System.out.println(name+" "+age);
}
}
public class StudentTest {
public static void main(String[] args) {
Student student = new Student();
student.setAge(200);//赋值
student.setName("李四");
int age = student.getAge();//取值
System.out.println(age);
String name = student.getName();
System.out.println(name);
}
}