大白成为Java软件攻城狮的第十八天(面向对象的封装性、static)

面向对象的封装性

封装的好处:

  • 1、封装之后,对于那个事物来说,看不到这个事物比较复杂的一面,只能看到该事物简单的一面。复杂性封装,对外提供简单的操作入口。照相机就是一个很好的案例,照相机的实现原理比较复杂,但是对于使用照相机的人来说,操作起来是非常方便的。还有像电视机也是封装的,电视机内存实现非常复杂,但是对于使用者来说不需要关心内部的实现原理,只需要会操作遥控器即可。
  • 2、封装之后会形成真正的“对象”,真正的“独立体”。
  • 3、封装就意味着以后的程序可以重复使用。并且这个事物应该适应性比较强,在任何场合都可以使用。【可重用性
  • 4、封装之后,对于事物本身,提高了安全性【安全级别高

封装的步骤:

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

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

  • 对外提供两个公开的方法,分别是set方法和get方法
  • 想修改age属性,调用set方法
  • 想读取age属性,调用get方法

3、set方法的命名规范:public void set + 属性名首字母大写(形参){ };

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

4、get方法的命名规范:public 返回值类型 get + 属性名首字母大写(形参){ };

public int getAge(){
    
    
	return age;
}

5、需要背会的:

  • setter和getter方法没有static关键字
  • 有static关键字修饰方法怎么调用?类名.方法名(实参);
  • 没有static关键字修饰方法怎么调用?引用.方法名(实参);

例:

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

public  void setAge(int a){
    
     
	//编写业务逻辑代码进行安全控制
	//age = a; 
	
	if(a<0||a>150){
    
    
		System.out.println("对不起,您提供的年龄不合法");
		return;
	}
	//程序可以进行到这里的话,说明a是合法的,则进行赋值运算
	age = a; 
}

public  int getAge(){
    
    
	return age;
}

猜你喜欢

转载自blog.csdn.net/qq2632246528/article/details/113062563