java:面向对象的封装性

没有封装

面向对象的三大特征:
封装:好处:1.封装之后,看不到这个事物比较复杂的一面,只能看到简单的一面
复杂性封装,对外提供简单的操作入口,比如照相机(内部原理很复杂,但是操作起来很简单)

2.封装之后才会形成真正的对象,真正的独立

3.封装就意味着以后的程序可以重复使用,并且这个事物的适用性比较强,在任何场合都可以用

4.封装之后,对于事物本身提高了安全性。

继承
多态

定义一个User类

package Test2;

public class User {
	int age;
	String name;
}

定义UserTest测试类


package Test2;

public class UserTest {
	/**
	 * 对于当前程序来说,user类中的age属性在外部程序中可以随意访问,导致age属性的不安全。
	 * 一个user对象表示一个对象,用户的年龄不可能为负数,以下程序中年龄值是负数,但是没有报错
	 * 这是当前程序存在的缺陷
	 * @param args
	 */
	public static void main(String[] args) {
		User user = new User();
		user.name ="大明";
		user.age=-100;  //可以随意访问,没有封装。建议被user类型进行封装,在外部程序中不能随便访问user中的属性
		System.out.println(user.age);
	}
}

封装之后

对于数据的访问形式:

  1. 读取值(get)
  2. 修改值(set)

封装的步骤:(操作入口变成了只能通过set和get方法进行访问)

  1. 所有属性私有化,使用private关键字进行修饰。private修饰所有的数据只能在本类中访问
  2. 对外提供简单的操作入口。也就是说想要访问age属性必须通过入口进行访问
    对外提供两个公开的方法,分别是setget
    修改age就调用set
    读取age就调用get
  3. set方法的命名规范:

public void set+属性名首字母大写(形参){
}

public void setAge(int a){
age=a;
}

  1. get方法的命名规范:

public int getAge(){
return age;
}

setter and getter 方法没有static关键字
有static关键字的方法用法:类名.方法名(实参);
没有static关键字的方法用法:引用.方法名(实参);

也可以在代码片段里右键 source - setter and getter

定义一个user类


package Test3;

 * @author Administrator
 *
 */
public class User {
	private int age;  //进行了私有化,但是就在外面彻底访问不到了(UserTest类也不行)
	
	public void setAge(int a){
		//编辑业务逻辑代码进行安全控制
		if(a<0 || a>150){
			System.out.println("输入的年龄不合法");
			return;
		}//如果程序执行到了这里,说明age的年龄是合法的,就可以进行赋值运算
		age = a;
	}
	public int getAge(){
		return age;	
	}
}

package Test3;

public class UserTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		User user=new User();
		
		//System.out.println(user.age); 有了private修饰,使用这个方法已经访问不到了
		user.setAge(-100); //不合法年龄
		user.setAge(10);
		int age=user.getAge();
		System.out.println(age);	
	}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值