萌新学Java之面向对象封装

栈里是一些方法和变量的引用

堆存放创建出来的对象

堆里包含方法区

引用就是指向地址

修饰符 属性类型 属性名 = 属性值

默认初始化:

数字:0、0.0

char:u0000

boolean:false

引用类型(八大基本类型之外的):null

类:静态的属性(属性)、动态的行为(方法)

设计程序时,追求高内聚、低耦合

高内聚:类的内部数据操作细节自己完成,不允许外部干涉

低耦合:仅暴露少量的方法给外部使用

封装(数据的隐藏):属性私有,get/set

禁止直接访问一个对象中数据的实际表示,需通过操作接口来访问

内部的封装可以使程序更安全,比如可以在 set 方法里加判断条件

属性设置 private 私有

getName()、setName() 都是 public 公共

可以直接输入 getName()、setName(),idea 会直接显示方法

也可以按 alt + insert,选择 Getter and Setter,自动生成 get/set 方法

注意在 main 方法里要赋值的时候用 setName()

打印的时候用 getName()

代码如下:

public class Pet {
    //属性私有
    private String name;
    private int age;

    //get 获得这个数据
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    //set 给这个数据设置值
    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        if(age>120||age<0){
            this.age = 1;
        } else{
            this.age = age;
        }
    }

}
public class Application {
    public static void main(String[] args) {
        Pet pet = new Pet();
        //set 设值
        pet.setName("hh");
        pet.setAge(-1);
        //get 获取
        System.out.println(pet.getName());
        System.out.println(pet.getAge());
    }
}

运行结果如下:

封装优势:

1.提高程序的安全性,保护数据

2.隐藏代码的实现细节

3.统一接口

4.系统可维护性增加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值