Java基础封装性

导读:本篇文章讲解 Java基础封装性,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

封装的好处:

1.封装之后,对于那个事物来说,看不到这个事物比较复杂的那一面,只能看到该事物简单的那一面。复杂性封装,对外提供简单的操作入口。照相机就是一个很好的封装的实例,照相机的实现原理非常复杂,但是对于使用照相机的人来说,操作起来是非常方便的是非常便捷的。还有像电视机也是封装的,电视机内存实现非常复杂,但是对使用者来说不需要关心内部的实现原理,只需要会操控遥控器就行。

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

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

4.封装之后,对于事物本身,提高了安全性【安全级别高】

未封装的示例代码01:

class User {
    
	int age;
}
/**
 * 用户测试类
 * 
 * 对于当前程序来说:
 * User类中的age属性在外部程序中可以随意访问,导致age属性的不安全。
 * 一个User对象表示一个用户,用户的年龄不可能为负数,以下程序当中年龄值
 * 为负数,程序运行的时候并没有报错,这是当前程序存在的缺陷。
 * */
public class UserTest{
    
	public static void main(String[] args){
	  //创建User对象 
	  User user = new User();
	  
	  //访问age
	  //读取年龄值【get】
	  System.out.println("该用户的年龄为: " + user.age);
	  
	  //修改年龄值【set】
	  user.age = 20;
	  //读取年龄值【get】
	  System.out.println("该用户的年龄为: " + user.age);
	  
	  //这里的age属性显然是完全暴露给外部程序的,对于程序员来说可以操作User对象当中的所有的
	  //细节,导致User中部分数据不安全。
	  //不建议这样,建议User类型进行封装,建议在外部程序中不能随意访问User对象当中的属性。这样
	  //可以保证属性的安全
	  user.age = -100;
	  System.out.println("该用户的年龄为: " + user.age);
	  
	  
}
}

封装的步骤:

1.所有的属性私有化,使用private关键字进行修饰,private表示私有的,修饰的所有数据只能在本类中访问。

2.对外提供简单的操作入口,也就是说以后外部程序要想访问set属性,必须通过这些简单的入口进行访问:

对外提供两种公开的方法,分别是setget方法

  • 想修改age的属性,调用set方法

  • 想读取age的属性,调用get方法

  • setter and getter方法没有static关键字

3.set方法的命名规范:

public void setAge(int n){

age = a

}

4.get方法的命名规范:

public int getAge(){

return;

}

一个属性通常访问的时候包括几种访问形式?

-第一种方式:想读取这个属性的值,读取get

-第二种方式:想修改这个属性的值,修改set

setter and getter方法没有static关键字

有static关键字修饰事物方法怎么调用:类名.方法名(实参);

没有static关键字修饰的方法怎么调用:引用.方法名(实参);

封装的示例代码02:

class User {
    
	//属性私有化
	private int age;
	
	//set方法没有返回值,因为set方法只负责修改数据
	/*
	  public void setAge(int n){
	   age = age;//java有就近原则,这里其实并没有给age属性赋值,这里的age都是局部变量
	  }
	 */
	
	//setter
	public void setAge(int a){
		//编写业务逻辑代码进行安全控制
		if(a < 0 || a > 150){
			System.out.println("对不起你提供的年龄不合法!");
			return;
		}
		age = a;
	}
	
	//getter
	public int getAge(){
		return age;
	}
}
public class UserTest {

	public static void main(String[] args) {
		
		//创建User对象
		User user = new User();
		
		//编译报错,age属性私有化,在外部程序中不能直接访问
		//从此之后age的属性非常的安全,但是有点太安全了
		//对于目前的程序来说,age属性彻底在外部访问不到
		//修改
		user.setAge(-100);
        		
        //读取
		System.out.println(user.getAge());
	}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94337.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!