Java面向对象之类和封装

今天复习了下Java面向对象的封装,下面分享下我的复习心得!

1.使用private关键字修饰某个成员变量后,这个成员变量可以被同一包中的其它类访问吗?
2.在Java程序中,代码封装带给我们的好处是什么?

下面我通过两个简单的例子来回答这两个问题

第一题:编写一个类,代表老师,要求:
具有属性:姓名、年龄
具有行为:自我介绍
老师的最小年龄要求:22岁

package study;

public class Teacher {
	/*
	 * 封装就是将属性私有化,增加了数据访问限制,增强了程序的可维护性
	 */
	private String name;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		/*
		 * 限制年龄
		 */
		if(age<22){
			System.out.println("错误!最小年龄应该为22!");
			this.age=22;
		}else{
			this.age = age;
		}
	}
	public String jieshao(){
		return "大家好!我叫"+name+";我今年"+age+"岁!";
	}
	public static void main(String[] args) {
		Teacher t=new Teacher();
//		t.name="孔子";
//		t.age=56;
		t.setName("老子");
		t.setAge(15);
		System.out.println(t.jieshao());
	}
}
通过上面这个例子,可以看出代码封装可以限制数据访问,提高了代码的可维护性!回答了第二问。

第二题:编写一个类,代表学生,要求:
具有属性:姓名、年龄
具有行为:自我介绍
学生的最大年龄要求:21岁

package study;

public class Student {
	public String name;
	public int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		if(age>22){
			System.out.println("错误!学生年龄小于22!");
			this.age=18;
		}else{
			this.age = age;
		}
	}
	public String jieshao(){
		return "大家好,我叫"+name+",今年"+age+"岁!";
	}
	public static void main(String[] args) {
		Student s=new Student();
		s.setName("jack");
		s.setAge(25);
		System.out.println(s.jieshao());
		Teacher t=new Teacher();
		t.setName("tom");
		t.setAge(18);
		System.out.println(t.jieshao());
	}
}

从代码中可以看出Teacher类和Student类都在study包中,Teacher类用private修饰属性,Student用public修饰属性。同时可以看出第二题调用了Teacher类,即可以被同一包中的其他类访问。下面输出结果:

错误!学生年龄小于22!
大家好,我叫jack,今年18岁!
错误!最小年龄应该为22!
大家好!我叫tom;我今年22岁!

从结果也可以看出使用了封装可以限制老师和学生的年龄。亲们,我讲的对么

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值