java基础:面向对象编程16-封装性

package com.atguigu.java;
/*
 * 面向对象的特性之:封装性
 * 一、为什么要使用封装性
 *  但我们创建对象以后,可以通过对象名.属性名对的方式对属性进行赋值,这种方式默认只能对内容的类型和范围(数据类型本身的取数范围)进行约束
          但是在实际开发中,往往我们还会有更的限制条件,但是这些限制条件无法在属性中声明,所有采用如下方式:
    1.使用private修饰属性,这样就不能通过对象名.属性名对的方式对属性进行赋值了
    2.提供公共 public的方法给属性赋值或者获取属性值,这样就可以把限制条件写在方法中
    二、封装性的体现(狭义上)
           私有化属性,提供公共public的set/get方法
    
    三、封装性的体现(广义上)
    1.四种权限修饰符都可以用来做封装
    2.可以用四种权限修饰符修饰:属性、方法、构造器、内部类。代码块不行
    3.class只能用public和default(缺省)修饰。
    
    四、set/get方法就是普通方法,如果开心可以随意起名。
 */
class Animal{
	String name;
	int age;
	private int legs;
	
  /**
   * 获取属性值
   * @return
   */
	public int getLegs(){
		return legs;
	}
	

	/**
	 *  给属性赋值的方法习惯性的命名为setXxx,获取属性值的方法习惯习惯性的命名为getXxxx
	 * @param l
	 */
	public void setLegs(int l){
		if(l !=4){
			System.out.println("给我去死!!");
			//赋值一个默认值
			legs = 4;
			}else{
				legs=l;
			}
	}

	public void info(){
		System.out.println("name  "+name+"age  "+age+"legs  "+legs);
	}
}

public class AnimalTest {
		public static void main(String[] args) {
			Animal animal = new Animal();
			animal.name= "二哈";
			animal.age=2;
			animal.setLegs(-4);
			animal.info();
		}
}

练习题:

1.创建程序,在其中定义两个类:PersonPersonTest类。定义如下:

setAge()设置人的合法年龄(0~130),用getAge()返回人的年龄。在PersonTest类中实例化Person类的对象b,调用setAge()g

package com.atguigu.exer3;

class Person{
	private int age;
	/**
	 * 获取属性值
	 * @return
	 */
	public int getAge(){
		return age;
	}
	
	/**
	 * 给属性赋值:0-130
	 * @param a
	 */
	public void setAge(int a){
		if(a>=0 && a<=130){
			age=a;
		}else {
			System.out.println("年级不合法");
			age=10;
		}
	}
}



public class PersonTest {
	public static void main(String[] args) {
		Person b = new Person();
		b.setAge(200);
		System.out.println(b.getAge());
	}
}

etAge()方法,体会Java的封装性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值