java面向对象成员变量和封装(1)

java面向对象

成员变量和局部变量


  • 成员变量:定义在方法,类里面
  • 局部变量:定义在方法,类里面
  • 区别:作用域不同:成员变量作用在类中,局部变量作用在方法中;初值不同,成员变量有初值,局部变量没有初值
  • 除此之外还有静态变量(类变量)需要注意,它是在jvm加载构造器之前进行加载,和类一样加载到方法区

由此我们可以得到一些提示:

存于堆中的变量(成员变量、静态变量),JVM会给赋初始值的
存于栈(准确的栈帧是方法区里面局部变量表之中)中的变量(局部变量),JVM不会给赋初始值的,必须由程序员自己初始化

封装


  • 封装,就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。通过该对象对外的提供的接口来访问该对象。
  • 优点:减少耦合,便于类中的修改,可以使我们容易地修改类的内部实现(增加了程序的可维护性),还有可以添加逻辑处理实现过滤,
  • setter()方面比如age == 300 这些错误就可以避免掉

    public void setAge(int age) {
        if(age > 120){
            System.out.println("ERROR:error age input....");    //提示錯誤信息
        }else{
            this.age = age;
        }
       
  • getter方面的
    例如性别我们在数据库中一般都是已1、0方式来存储的,但是在前台我们又不能展示1、0,这里我们只需要在getter()方法里面做一些转换即可。
public String getSexName() {
        if("0".equals(sex)){
            sexName = "女";
        }
        else if("1".equals(sex)){
            sexName = "男";
        }
        else{
            sexName = "人妖???";
        }
        return sexName;
    }

  • 封装步骤:
  1. 修改成员变量或者属性变为私有控制访问
  2. 提供外部可以直接调用的方法,每个属性创建一对取值(getter)方法和赋值(setter)方法
  3. 加入逻辑控制避免错误
发布了38 篇原创文章 · 获赞 1 · 访问量 2267

猜你喜欢

转载自blog.csdn.net/CRD8843/article/details/103690025