Java(9)面向对象之封装,包装类,自动装箱与自动拆箱

本文介绍了Java面向对象编程中的封装概念,包括对象属性的赋值与读值、公有方法访问私有成员变量、手动及IDEA自动生成的set/get方法,以及Lombok注解在简化这些操作中的应用。同时,文章讲解了构造方法、构造代码块和静态代码块的使用,并探讨了自动装箱和自动拆箱的过程,以及Integer缓存的细节,指出大于127的Integer值会新建对象。
摘要由CSDN通过智能技术生成

01 对象属性赋值与读值

public class Person01 {
   
    /**
     * 昵称
     */
    String nickname;

    /**
     * 性别 1代表男性 0代表女性
     */
    int gender;

    /**
     * 年龄
     */
    int age = 18;
}
public class Person01Test {
   
    @Test
    public void test(){
   
        Person01 person01 = new Person01();
        Person01 person02 = new Person01();
        System.out.println(person01.nickname);
        System.out.println(person02.nickname);
        System.out.println(person01.gender);
        System.out.println(person02.gender);
        System.out.println(person01.gender == 1? "小伙":"老妹");
        System.out.println(person02.gender == 1? "小伙":"老妹");
        System.out.println(person01.age);
        System.out.println(person02.age);
        System.out.println("++++++");
        person01.nickname = "姓名";
        person02.nickname = "名";
        System.out.println(person01.nickname);
        System.out.println(person02.nickname);
        person01.gender = 1;
        System.out.println(person01.gender == 1? "小伙":"老妹");
        System.out.println(person02.gender == 1? "小伙":"老妹");
        person01.age = 20;
        person02.age = 28;
        System.out.println(person01.age);
        System.out.println(person02.age);
    }

}
/*
null
null
0
0
老妹
老妹
18
18
++++++
姓名
名
小伙
老妹
20
28
*/

02 公有方法访问私有成员变量

/**
 * 访问修饰符 public protected default private<br>
 * Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。<br>
 * public:对所有类可见。使用对象:类、接口、变量、方法<br>
 * protected:对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)<br>
 * default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。<br>
 * private: 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)<br>
 * 外部如何访问内部的私有成员变量 适用本类中的共有方访问本类中的私有成员变量
 */
public class Person02 {
   
    /**
     * 昵称
     */
    private String nickname;

    /**
     * 性别 1代表男性 0代表女性
     */
    private int gender;

    /**
     * 年龄
     */
    private int age = 18;

    public void setNickname(String name) {
   
        nickname = name;
    }

    public String getNickname() {
   
        return nickname;
    }

    public void setGender(int sex) {
   
        gender = sex;
    }

    public int getGender() {
   
        return gender;
    }

    public void setAge(int nianling) {
   
        age = nianling;
    }

    public int getAge() {
   
        return age;
    }

}

public class Person02Test {
   
    @Test
    public void test() {
   
        Person02 person01 = new Person02();
        Person02 person02 = new Person02();
        person01.setNickname("姓名");
        person02.setNickname("姓");
        person01.setGender(1);
        person01.setAge(20);
        person02.setAge(28);
        System.out.println(person01.getNickname());
        System.out.println(person02.getNickname());
        System.out.println(person01.getGender() == 1 ? "小伙" : "老妹");
        System.out.println(person02.getGender() == 1 ? "小伙" : "老妹");
        System.out.println(person01.getAge());
        System.out.println(person02.getAge());
    }
    
}
/*
姓名
姓
小伙
老妹
20
28
*/

03 手写set方法和get方法

/**
 * 访问修饰符 public protected default private<br>
 * Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。<br>
 * public:对所有类可见。使用对象:类、接口、变量、方法<br>
 * protected:对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)<br>
 * default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。<br>
 * private: 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)<br>
 * 外部如何访问内部的私有成员变量 适用本类中的共有方访问本类中的私有成员变量<br>
 * 此处this为指向成员变量
 */
public class Person03 {
   
    /**
     * 昵称
     */
    private String nickname;

    /**
     * 性别 1代表男性 0代表女性
     */
    private int gender;

    /**
     * 年龄
     */
    private int a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值