渡课学习日记 20158/02/8/23 java 第三课

本文深入探讨了面向对象编程中的构造器和封装概念,讲解了构造器如何用于创建对象及初始化成员变量,以及封装如何通过将成员变量设为私有并提供公共方法来保护数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天上课重点讲了构造器和封装

还是比较复杂,需要仔细的理解。

封装

封装是面向对象编程的三大特性之一。

封装的目的:

1.隐藏类方法实现的细节;
2.让使用者只能通过预先定义的方法来访问数据,从而可以在方法中加入一些控制逻辑,限制对成员变量的不合理访问。
简单的理解就是,把成员变量隐藏起来,暴露方法来提供成员的修改和访问。

public class Student {
   private String name;
   private int age;
   private boolean sex;

   public Student(String name, int age, boolean sex) {
    super();
    this.name = name;
    this.age = age;
    this.sex = sex;
   }

   public void setName(String name) {
    this.name = name;
   }

   public String getName() {
    return this.name + (this.sex ? "先生" : "女士");
   }
}

Getter 和 Setter

把属性定义为 private 类型,即私有,向外部暴露其 get 和 set 方法。

相关方法名的定义:

1.get + 首字母大写的属性名() :get 方法一般都是具有和属性数据类型一致的返回值,并且是没有形参的。
2.set + 首字母大写的属性名(参数):set 方法一般都是具有和属性数据类型一致的方法参数,返回值一般是 void。

在 Eclipse 中,可以通过快捷方式生成相关属性的 getter 和 setter
在 「source」-> 「generate getters and setters」

深入构造器(构造器最大的作用就是创造对象)

**如果在类定义中没有显式的定义一个构造器,则编译器在编译源文件时,会创建一个没有参数、没有方法体执行语句的空的构造器。
如果显式的定义了一个构造器,则上述的空的构造器则不会存在。
在调用构造器创建对象的时候,系统会为每个对象的实例变量设置默认值**

**基本数据:数值型的为0,布尔类型的为false,char类型的为’\u0000’;
引用数据类型:null;
如果在方法中定义的局部变量:系统是不会对其设置默认值的,必须要显式的通过赋值运算符=给变量赋值。**

通过构造器为成员变量定义初始化值,这也是构造器的最最重要的用途之一。

构造器重载

如果需要在构造器中调用另外一个构造器,可以使用 this(params);

在构造器中调用构造器,必须把this(params)放在有效的执行语句第一行,而且不允许出现两条this(params)语句。

public Client1(int age, String code, String name) {
        this(age);
        this.name = name;
    }

    public Client1(String code) {
        this.code = code;
    }

    public Client1(int age) {
        // 复用
        if (age < 0 || age > 150) {
            System.out.println("不合法的年龄数据");
        } else {
            this.age = age;
        }   
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值