java中的面向对象(封装,private)。

在java中封装到底是指什么呢?

其实封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:1将变化隔离。

        2便于使用。

        3提高重用性。

        4提高安全性。

封装原则:1将不需要对外提供的内容都隐藏起来。

                2把属性都隐藏,提供公共方法对其访问。

其实java中的函数就是最小的封装。

那么我们该怎么实现封装呢?我们举一个例子。

class Person
	{
		int age;
		void speak( )
		{
			 System.out.println("age="+age);
		}	 
	}				
class PersonDemo
 	 {
        	public static void main(String[ ] args)	
        	{
        		Person p=new Person();
        		p.age=20;
        		p.speak();
		}
	}

这个代码是一个简单的代码,运行是可以运行的,结果如图。        ​​​​​​​        ​​​​​​​                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

但是大家有没有发现一个问题,当我们输入-20的时候运行结果肯定是-20,没问题的。但是-20与我们现实生活中的常识相违背。出现这种情况的原因是age建立对象后被直接访问到了,如果直接访问就会出现安全隐患,那么我们能不能把这个age隐藏起来不让你访问就可以了,我们可以用一个修饰符来修饰,private。

private:私有,权限修饰符,用于修饰类中的成员(成员变量,成员函数)。私有只在本类有效。

我们在int age前面加一个private试一试。

我们可以看到是运行错误的。这个说明了这个age只能在Person中访问。

那么把它私有了我们该怎么访问,我们封装提供了安全性但是应该要提供一种方法来访问。

将age私有化之后,类以外即使建立了的对象也不能直接访问了,但是人应该有年龄,那么就需要在Person类中应提供访问age的方式。

我们可以这样写这个代码。

class Person
	{
		private int age;
		public  void setAge(int a)
		{ 	
			age=a;
		}		
		void speak( )
		{
			 System.out.println("age="+age);
		}	 
	}				
class PersonDemo
 	 {
        	public static void main(String[ ] args)	
        	{
        		Person p=new Person();
        		p.setAge(20);
        		p.speak();
		
		}		
	}

运行结果是一样的跟之前的。我们就是对外给了一种方法。对外提供了函数。之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作,提高代码的健壮性。当然我们这时候输入-20他还是可以输出-20的。所以我们在里面加一个判断语句。

class Person
	{
		private int age;
		public  void setAge(int a)
		{ 	
			if(a>0&&a<120)
			{
				age=a;
				speak();
			}
			else
				System.out.println("feifa age");
			}		
		void speak( )
		{
			 System.out.println("age="+age);
		}	 
	}				
class PersonDemo
 	 {
        	public static void main(String[ ] args)	
        	{
        		Person p=new Person();
        		p.setAge(-20);
        		p.speak();
		
		}		
	}

这个时候我们再运行一下。

        ​​​​​​​        ​​​​​​​        ​​​​​​​         

可以看出来他判断出-20是feifa age。并且输出0。

这就是今天所说的封装和private。大家可以自己多练习去掌握。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值