目录
一,封装的步骤
封装的步骤:
* 1,所有属性私有化,使用private关键字修饰,private表示私有,修饰的数据只能在本类中访问;
*
* 2,对外提供简单的操作入口,外部程序访问私有属性(比如age),必须通过这些入口进行访问;
* -对外提供两个公开的方法,分别是set和get方法;
* -修改age属性,用set方法;
* -读取age属性,用get方法;
* (一个属性通常访问的时候包括几种访问形式?
* 读取属性的值:get方法;
* 修改属性的值:set方法;)
*
* 3,set方法的命名规范:
* public void setAge(int a){
* age = a;
* }
*
* 4,get方法的命名规范:
* public void getAge(){
* return age;
* }
*
* 5,注意:
* setter和getter方法没有static关键字
* 有static关键字修饰的方法如何调用:类名.方法名(实参);
* 没有static关键字修饰的方法如何调用:引用.方法名(实参);
User.java
package test1;
/**
* 封装的步骤:
* 1,所有属性私有化,使用private关键字修饰,private表示私有,修饰的数据只能在本类中访问;
*
* 2,对外提供简单的操作入口,外部程序访问私有属性(比如age),必须通过这些入口进行访问;
* -对外提供两个公开的方法,分别是set和get方法;
* -修改age属性,用set方法;
* -读取age属性,用get方法;
* (一个属性通常访问的时候包括几种访问形式?
* 读取属性的值:get方法;
* 修改属性的值:set方法;)
*
* 3,set方法的命名规范:
* public void setAge(int a){
* age = a;
* }
*
* 4,get方法的命名规范:
* public void getAge(){
* return age;
* }
*
* 5,注意:
* setter和getter方法没有static关键字
* 有static关键字修饰的方法如何调用:类名.方法名(实参);
* 没有static关键字修饰的方法如何调用:引用.方法名(实参);
*
*
* @author hyc
*
*/
public class User {
//属性私有化
private int age;
//set方法没有返回值,因为set只负责修改数据
public void setAge(int a) {
if(a<0||a>150) {
System.out.println("对不起,您输入的年龄不合法");
return ;
}
//程序可以执行到这里说明输入的值是合法的,可以进行赋值
age = a;
}
//getter
public int getAge() {
return age;
}
}
UserTest.java 访问私有属性
package test1;
public class UserTest {
public static void main(String[] args) {
//创建User对象
User user = new User();
//修改
//所以由此可见引用的方法,先new一个对象,再用点调用
user.setAge(190);
//读取
System.out.println(user.getAge());
}
}
二,实例
package test1;
public class Customer {
private int id;
private int age;
private String name;
private String addr;
//鼠标右键选择source自动生成set和get方法
//如果要进行安全控制,则可以在set当中编写业务代码,进行安全封装
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
package test1;
public class CustomerTest {
public static void main(String[] args) {
Customer c= new Customer();
c.setAddr("湖北大学");
c.setAge(21);
c.setId(666);
c.setName("hyc");
//私有的属性不能在外部直接访问,这就是封装
//c.id = 410这种方法就不可以,无法访问
System.out.println(c.getAddr());
System.out.println(c.getAge());
System.out.println(c.getId());
System.out.println(c.getName());
}
}