Java面向对象之封装
2017-09-28 19:24
337 查看
通常情况下在测试类中可以给成员变量赋值一些合法但不合理的数值(如年龄为负数),而程序的执行过程无法检测和提示,此时不符合生活实际。
为了避免类似的情况发生,就需要给成员变量的赋值操作进行合理性的判断和提示,该方法就叫做封装,通俗的说,封装就是一种保证成员变量合理的机制。
编程实现Person类的封装
编程实现Person类的测试
封装的流程步骤:
(1)私有化成员变量,使用private关键字修饰;
(2)提供公共的get成员变量和set成员变量方法,在和
为了避免类似的情况发生,就需要给成员变量的赋值操作进行合理性的判断和提示,该方法就叫做封装,通俗的说,封装就是一种保证成员变量合理的机制。
编程实现Person类的封装
public class Person{ //1.私有化成员变量 private String name; //用于描述姓名的成员变量 private int age; //用于描述年龄的成员变量 //static关键字修饰成员变量表示隶属于类层级,被所有对象共享 /*因为我们的country是一样的,所以提取到类层级上 */ public static String country; //用于描述国籍的成员变量 //3.在构造方法中调用set成员变量的方法进行合理值的判断 public Person(){ } public Person(String name, int age, String country){ setName(name); setAge(age); setCountry(country); } //2.提供公有的get成员变量和set成员变量的方法,并在方法体中进行合理性的判断 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 > 0 && age < 150){ this.age = age; } else{ System.out.println("年龄不合理!!!"); } } public String 4000 getCountry(){ return country; } public void setCountry(String country){ this.country = country; } public void show(){ /* System.out.println("我是" + name + ",今年" + age + "岁了,来自" + country); */ //推荐使用 利于修改和维护(便于在成员方法中修改) System.out.println("我是" + getName() + ",今年" + getAge() + "岁了,来自" + getCountry()); } }
编程实现Person类的测试
public class TestPerson{ public static void main(String[] args){ System.out.println("国籍是:" + Person.country); //null Person p1 = new Person("zhangfei", 30, "China"); p1.show(); Person p2 = new Person("guanyu", 35, "China"); p2.show(); /*被static定义的成员变量提升为类层级,在方法区申请了一块内存,被所有线程共享, 也就内存地址指向同一个地址,所以在任何一个对象下面修改,所修改的内容指向的地址 都是同一个,即方法区中的成员变量的实际值被修改了*/ p1.country = "America"; System.out.println("p1.country = " + p1.country); //America System.out.println("p2.country = " + p2.country); //America Person p3 = new Person(); System.out.println("p3.country = " + p3.country); //America } }
封装的流程步骤:
(1)私有化成员变量,使用private关键字修饰;
(2)提供公共的get成员变量和set成员变量方法,在和
相关文章推荐
- JAVA基础学习(五)---面向对象一类,对象、封装
- (JAVA SE 学习笔记)Java.SE.第011讲.面向对象之封装.续二(对一些原理机制进行了详细的解释,适合初学者学习)
- java面向对象之封装
- Java面向对象之成员隐藏与属性封装操作示例
- java编程面向对象思想:封装,继承,多态
- Java 基础入门随笔(7) JavaSE版——面向对象定义、特征:封装、构造函数
- JAVA面向对象知识点总结(2)—封装、构造函数、构造代码块、this关键字
- Java面向对象、抽象、封装、继承、多态
- Java经典封装JDBC模板(充分体现面向对象思想)
- JAVA基础第五天学习日记_面向对象开发思想、匿名对象、封装、私有、构造函数
- Java面向对象之封装
- 黑马程序员-------- java面向对象 封装、构造函数、this static关键字、单例设计
- #2JAVA面向对象之封装#
- 大三学长带我学习JAVA.作业5.面向对象之封装 面向对象之封装.续 学长带我学java的作业5
- Java第三次作业--面向对象基础(封装)
- Java面向对象详谈——封装、继承和多态
- 面向对象 -- Java中的封装,继承,多态(下)
- java学习之路 之 面向对象编程-面向对象特征之一(封装和隐藏)级类的成员之三(构造器、构造方法)
- Java基础笔记整理---【06】面向对象程序设计-封装
- 【学习笔记03】java面向对象-封装