**
封装概述
封装是指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作访问。
封装的好处
提高了安全性,提高了复用性,隐藏了实现细节
封装步骤
1.尽量让权限降到最低,在类里将属性前添加private 修饰符,从而提高安全性
2.在类中定义getter 和setter方法,在方法内可以设置取值范围
3.最后,在main函数里的对象,不能直接调用属性了,只能通过getter和setter方法进行调用
小知识
在使用Eclipse写java程序中同时按shift+Alt+s 选择“Generate Getters and Setters”可以自动写出 set\get方法
public class Student {
//1.把属性私有化(private)
private String stuName;
private int stuAge;
// private double stuPrice;//价格
//2.为这些私有的属性设置get和set方法
/**
* 为StuName设置get和set方法
* @param name
*/
public void setStuName(String name){
if(name.length()>1 && name.length()<5){
stuName=name;
}else{
System.out.println("非法名字");
}
}
public String getStuName(){
return stuName;
}
/**
* 为StuAge设置get和set方法
* @param name
*/
public void setStuAge(int age){
if(age>0 && age<100){
stuAge=age;
}else{
System.out.println("非法年龄");
}
}
public int getStuAge(){
return stuAge;
}
}
public class Test {
public static void main(String[] args){
Student student=new Student();
Scanner sc=new Scanner(System.in);
System.out.println("请输入游客姓名:");
String name=sc.next();
student.setStuName(name);
System.out.println("请输入游客年龄:");
int age=sc.nextInt();
student.setStuAge(age);
System.out.println("***********************************");
System.out.println(student.getStuName());
System.out.println(student.getStuAge());
}
}