Java面向对象之类和封装
来源:互联网 发布:崂山道士马思唯 知乎 编辑:程序博客网 时间:2024/05/30 23:08
今天复习了下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岁!
从结果也可以看出使用了封装可以限制老师和学生的年龄。亲们,我讲的对么
- Java面向对象之类和封装
- java面向对象之类与封装
- java面向对象之类和对象
- Java面向对象之类和对象
- Java面向对象之类
- JAVA面向对象之类
- 面向对象之类和对象
- 面向对象之类和对象
- 面向对象之类的封装与调用
- JavaSE入门学习11:Java面向对象之类和对象
- (3) 面向对象一之类和对象、成员变量和局部变量、继承、封装、多态
- Java基础第7讲--面向对象之类和方法
- java之类和对象
- JAVA之类和对象
- java面向对象思想之类与对象
- Python015面向对象之类和对象
- Java面向对象封装和多态
- JAVA 面向对象 隐藏和封装
- 计算几何初步-向量的旋转 Rescue The Princess
- 斜45度地图简介、坐标系转换以及数据碰撞
- 内存详解
- 【中级】C++析构函数抛出异常
- android目录说明
- Java面向对象之类和封装
- esri/tasks/TrimExtendParameters
- hdu 2426 Interesting Housing Problem(最大权值匹配)
- WebView基本使用
- 用C++设计一个不能被继承的类
- Linux Shell输出命令结果到脚本变量中
- android 使用代码实现 RelativeLayout布局
- Java IO学习
- Android文件下载