第一周总结

本周是放假第一周,打算把Java重新学一遍

在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。

封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

要访问该类的代码和数据,必须通过严格的接口控制。

封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

封装的优点

  • 1. 良好的封装能够减少耦合。

  • 2. 类内部的结构可以自由修改。

  • 3. 可以对成员变量进行更精确的控制。

  • 4. 隐藏信息,实现细节。

private关键字:是一个权限修饰符

可以修饰成员(成员变量和成员方法)

被private修饰的成员只能在本类中才能访问

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作

提供“setXxx(参数)” 方法,用于给成员变量赋值,方法用public修饰

提供"getXxx()"方法,用于获取成员变量的值,方法用public修饰

package test3;

/**
 * ClassName: GirlFriend
 * Package: test3
 * Description:
 *
 * @Author: 20213923ysf
 * @Create: 2023/7/11 - 12:57
 */
public class GirlFriend1 {
    private String name;
    private int age;
    private String gender;

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

    public String getName() {
        return name;
    }

    public void setAge(int a) {
        if (a >= 12 && a <= 28) {
            age = a;
        } else {
            System.out.println("年龄输入有误");
        }
    }

    public int getAge() {
        return age;
    }

    public void setGender(String g) {
        gender = g;
    }

    public String getGender() {
        return gender;
    }

    public void eat() {
        System.out.println("女朋友在吃饭");
    }

    public void sleep() {
        System.out.println("女朋友在睡觉");
    }
}
package test3;

import test2.GirlFriend;

/**
 * ClassName: GirlFriendTest
 * Package: test3
 * Description:
 *
 * @Author: 20213923ysf
 * @Create: 2023/7/11 - 13:04
 */
public class GirlFriend1Test {
    public static void main(String[] args) {
        GirlFriend1 gf1 = new GirlFriend1();
        gf1.setName("青雀");
        gf1.setAge(16);
        gf1.setGender("女");
        System.out.println(gf1.getName());
        System.out.println(gf1.getAge());
        System.out.println(gf1.getGender());
    }
}

在Java中,this是一个引用,它指向当前对象的实例。它可以用于以下几个方面:

  1. 用于区分局部变量和实例变量:在方法或构造函数中,如果存在一个局部变量和一个实例变量同名,可以使用this关键字来引用实例变量。这样可以明确地告诉编译器你要使用的是实例变量,而不是局部变量。

  2. 用于在一个构造函数中调用另一个重载的构造函数:如果一个类有多个重载的构造函数,其中一个构造函数可能会调用其他构造函数来避免代码的重复。在这种情况下,可以使用this关键字来引用另一个构造函数。

  3. 用于在方法内部访问当前对象的成员变量和方法:当需要在一个类的实例方法中访问当前对象的成员变量或方法时,使用this关键字来引用当前对象。

  4. 用于返回当前对象的引用:在某些情况下,需要在方法中返回当前对象的引用,这样可以支持方法链式调用。使用this关键字返回当前对象的引用。

总之,this关键字在Java中主要用于引用当前对象的实例,它的使用可以帮助区分变量、调用构造函数、访问成员变量和方法,以及支持方法链式调用。

package test3;

/**
 * ClassName: GirlFriend1
 * Package: test3
 * Description:
 *
 * @Author: 20213923ysf
 * @Create: 2023/7/11 - 12:57
 */
public class GirlFriend1 {
    private String name;//name为成员变量
    private int age;
    private String gender;

    public void setName(String name) //name是局部变量
    {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        if (age >= 12 && age <= 28) {
            this.age = age;
        } else {
            System.out.println("年龄输入有误");
        }
    }

    public int getAge() {
        return age;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getGender() {
        return gender;
    }

    public void eat() {
        System.out.println("女朋友在吃饭");
    }

    public void sleep() {
        System.out.println("女朋友在睡觉");
    }
}

从内存的角度去解释:

基本数据类型:数据值是存储在自己的空间中

特点:赋值给其他变量,也是赋的真实的值。

引用数据类型:数据值是存储在其他空间中,自己空间中存储的是地址值。

特点:赋值给其他变量,赋的地址值。

posted @ 2023-07-15 23:12  漏网鲨鱼  阅读(17)  评论(0)    收藏  举报