【day08】面向对象编程(封装)

【day07】回顾

在深入封装的概念之前,让我们回顾一下【day07】中的关键内容:

  1. 面向对象编程:Java的核心编程思想,通过对象实现功能的封装和复用。

    • 使用场景:在一个类中访问另一个类的成员(成员变量、成员方法)。
    • 使用方法:通过new关键字创建对象,然后通过点操作符(.)调用对象的成员。
  2. 类和对象

    • :实体类的抽象表示,包含属性(成员变量)和行为(成员方法)。
    • 对象:类的实例化,用于访问类中的成员。
    • 导包:同一包下的类不需要导包,不同包下的类需要导包。
    • 创建对象:使用new关键字创建对象。
    • 调用成员:通过对象名调用类的成员。
  3. 匿名对象:没有等号左边的代码,只有new操作符创建的对象。

    • 注意:匿名对象不适用于需要赋值的场景。
  4. 成员变量和局部变量的区别

    • 定义位置、初始化值、作用范围、内存位置、生命周期均有所不同。

模块八重点

本模块我们将学习封装的概念和实践,包括:

  1. 使用private关键字修饰成员,并了解其访问特点。
  2. 使用set方法为属性赋值,使用get方法获取属性值。
  3. 使用this关键字区分重名的成员变量和局部变量。
  4. 使用空参构造创建对象,并了解其作用。
  5. 使用有参构造创建对象,并为属性赋值。
  6. 快速生成一个标准的JavaBean类。

第一章:封装

1. 封装的介绍及使用

封装是面向对象编程的三大特征之一,它将对象的内部细节隐藏起来,只对外提供公共的接口,从而提高了系统的可扩展性、可维护性和安全性。

示例代码
public class Person {
    private String name;
    private int age;

    public void setName(String xingMing) {
        name = xingMing;
    }

    public String getName() {
        return name;
    }

    public void setAge(int nianLing) {
        if (nianLing < 0 || nianLing > 150) {
            System.out.println("岁数不合理");
        } else {
            age = nianLing;
        }
    }

    public int getAge() {
        return age;
    }
}
public class Test01 {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("涛哥");
        person.setAge(18);
        System.out.println(person.getName() + "..." + person.getAge());
    }
}

在这里插入图片描述

2. this的介绍

this关键字用于区分重名的成员变量和局部变量,代表当前对象。

示例代码
public class Person {
    String name;

    public void speak(String name) {
        System.out.println(this.name + "您好,我是" + name);
    }
}

public class Test01 {
    public static void main(String[] args) {
        Person person = new Person();
        System.out.println(person+"=========");
        person.name = "沉香";
        person.speak("刘彦昌");

        System.out.println("==========");

        Person person2 = new Person();
        System.out.println(person2+"+++++");
        person2.name = "奥特曼";
        person2.speak("奥特曼之父");
    }
}

在这里插入图片描述

public class Person {
    private String name;
    private int age;

    //为name提供get/set方法
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    //为age提供get/set方法
    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }
}

3. 构造方法

构造方法是用于初始化对象的特殊方法,其方法名与类名相同,没有返回值。

3.1 空参构造

每个类默认都有一个空参构造,如果不手动定义,JVM会自动提供一个。

3.2 有参构造

有参构造用于在创建对象时为属性赋值。

示例代码
public class Person {
    private String name;
    private int age;

    public Person() {
        System.out.println("我是无参构造");
    }

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

    // ... get/set 方法
}

public class Test01 {
    public static void main(String[] args) {
        Person person = new Person();
        Person person2 = new Person("涛哥", 18);
        System.out.println(person2.getName() + "..." + person2.getAge());
    }
}

在这里插入图片描述

4. 标准JavaBean

JavaBean是一种遵循特定规范的Java类,它通常包含私有的成员变量、无参和有参的构造方法以及setget方法。

示例代码
public class Student {
    private int sid;
    private String sname;

    public Student() {
    }

    public Student(int sid, String sname) {
        this.sid = sid;
        this.sname = sname;
    }

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getSname() {
        return sname;
    }

    public void setSname(String sname) {
        this.sname = sname;
    }
}

public class Test01 {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setSid(1);
        s1.setSname("涛哥");
        System.out.println(s1.getSid() + "..." + s1.getSname());
    }
}

通过本模块的学习,您将能够熟练掌握封装的概念和实践,为后续的面向对象编程打下坚实的基础。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员波特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值