封装

**
* public(公共的):所有包下的所有类都可以访问。
* private(私有的):只能在本类中访问。
* 广义的封装:类似于包装的概念,在java中到处都是封装,可以将方法看作对代码集合的封装,可以将类看作对方法和属性的封装...
* 封装的优点:
* 1.隐藏了实现细节,简化开发
* 2.安全
* 3.提高了代码的可维护性和可扩展性。
* 狭义的封装:将属性私有化,然后提高公有的getter和setter方法以供访问。
* 步骤1:将属性私有化,将修饰符修改private的
* 步骤2:提供公有的访问方法:getter方法:取值,setter方法:赋值
* 步骤3:添加访问权限控制
*/

 

同一个类

同一个包中

子类

所有类

private

*

 

 

 

default

*

*

 

 

protected

*

*

*

 

public

*

*

*

*

 

 

 

 

 

 

 

 


public class Student {
private String name;
private int age;
private String className;

public Student(){
}

public Student(String name,int age,String className){
this.name = name;
this.age = age;
this.className = className;
}
//name的getter和setter方法
public String getName(){
return this.name;
}
public void setName(String name){
this.name=name;
}
//className的getter和setter方法
public String getClassName(){
return this.className;
}
public void setClassName(String className){
this.className=className;
}

 




/**
* 共有的getter方法:取值
* get+属性名称(首单词首字母大写+其余字母)
* @return
*/
public int getAge(){
return this.age;
}
/**
* 共有的setter方法:赋值
* set+属性名称(首单词首字母大写+其余字母)
* @param age
*/
public void setAge(int age){
//访问权限
if(age<18){
this.age=18;
}else{
this.age=age;
}
}

public void intro(){
System.out.println("姓名:"+name);
System.out.println("年龄:"+age);
System.out.println("班级:"+className);
}
}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

public class TestStudent {
public static void main(String[] args) {
Student stu = new Student();
// stu.name="张三";
// stu.age=-20;
// stu.className="java02";
stu.setName("张三");
stu.setAge(-20);
stu.setClassName("java02");
stu.intro();
}
}

posted @ 2017-06-10 11:44  旧城画梦  阅读(157)  评论(0编辑  收藏  举报