Java:封装概念和特点

知识总结:

封装:


封装的特点:


封装的代码实现:

属性前+private:该属性只能在当前类内部被访问;

在类外对private属性访问需要:创建getter/setter操作接口取值和赋值:



Cat.java:

package com.imooc.animal;
/**
 * 宠物猫类
 * @author zhangziwei
 *
 */
public class Cat {

	//修改属性的可见性--private限定只能在当前类访问
	private String name;
	int month;
	double weight;
	String species;
	
	
	public Cat(){
		System.out.println("无参数构造方法!");
	}
	
	//创建get/set方法
	//在get和set方法中添加对属性的限制
	public void setName(String name){
		this.name=name;
	}
	
	public String getName(){
		return "我是一只名叫"+this.name+"的猫咪";
	}
}

CatTest.java

package com.imooc.animal;

public class CatTest {
      public static void main(String[] args){
    	  //对象实例化
    	  //Cat one=new Cat("花花",2,1000,"英国短毛猫");
    	  Cat one=new Cat();
    	  one.setName("花花");
          System.out.println("昵称:"+one.getName()); 
    }
}


eclipse自动生成get/set方法:右键,source->generate getters and setters




技巧:如何使错误后的一下信息不再输出

public class CatTest {
      public static void main(String[] args){
    	  //对象实例化
    	  //Cat one=new Cat("花花",2,1000,"英国短毛猫");
    	  Cat one=new Cat();
    	  one.setName("花花");
    	  one.setMonth(3);
    	  one.setWeight(1000);
    	  one.setSpecies("英国短毛猫");
    	  
    	  
    	  System.out.println("昵称:"+one.getName()); 
    	  if(one.getMonth()==0)//如果没赋值,或者赋值因为小于0错误,初始值还是0
    		  return;//结束,不在执行下面的语句
    	  System.out.println("年龄:"+one.getMonth()); 
    	  System.out.println("体重:"+one.getWeight());   	  		
    	  System.out.println("昵称:"+one.getSpecies());
    	  
    	  
      }
}

注意:用带参数的构造方法给属性赋值的时候,可以越过setMonth()等方法,造成赋值可以小于0依然出现,因此推荐在带参数的构造方法里面耶使用调用setMonth()方法来做!不要用传统的参数复制方法来做! 可以避免bug




总结:

  • 15
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值