Java面向对象之类和封装
2013-09-06 21:31
351 查看
今天复习了下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岁!
从结果也可以看出使用了封装可以限制老师和学生的年龄。亲们,我讲的对么
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 SE 学习笔记)Java.SE.第011讲.面向对象之封装.续二(对一些原理机制进行了详细的解释,适合初学者学习)
- 黑马程序员-博客 (3) 面向对象一之类和对象、成员变量和局部变量、继承、封装、多态
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- java面向对象之封装
- Java面向对象-封装
- Java面向对象-(封装,继承,多态复习)+抽象
- Java面向对象之类加载过程
- Java面向对象之封装
- 黑马程序员--03.Java面向对象--01.【OOP基本概念】【匿名对象】【封装】【构造函数】【this关键字】
- Java第三次作业--面向对象基础(封装)
- Java--面向对象之一:面向对象概念、类和对象的关系、封装、构造函数、this关键字、static关键字
- Java面向对象之封装、继承、多态
- Java基础(一):Java面向对象、面向对象封装、抽象类、接口、static、final
- 面向对象之类的封装与调用
- 黑马程序员_Java面向对象1_封装
- JavaSE入门学习13:Java面向对象之封装
- Java面向对象(二)面向对象的特征 --- 封装 、 继承、 多态