java学习笔记(十一)封装、this关键字与static

本文详细介绍了Java中的封装概念及其好处,并解释了如何使用private关键字实现封装。此外,还探讨了this关键字的作用及使用场景,以及static关键字的特点和用途。

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

封装、this关键字与static

1.封装

封装:
    是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:
    A:提高了代码的复用性
    B:提高安全性。

体现:
    将不需要对外提供的内容都隐藏起来。
    做法:
        把属性隐藏,提供公共方法对其访问。

那么,为了让使用者使用方法来给成员变量赋值,就不能允许它们直接去访问成员变量。
怎么办呢?
为了解决这种情况,java就提供了一个修饰符关键字:private
private:私有的意思。

    可以修饰成员变量和成员方法。

    特点:
        被private修饰的内容,只能在本类中访问。
   封装加入private后的标准代码:
   A:把成员变量private修饰
    B:针对每一个成员变量给出
    getXxx()和setXxx()(注意首字母大写)
    注意:这里的xxx其实是成员变量名称。

2.this关键字

局部变量如果有一个变量和成员变量名称一致,那么优先使用的是局部变量。
就近原则。这样的话,就造成了局部变量隐藏了成员变量。
如何解决呢?
    为了解决这种情况,java就提供了一个代表本类对象的关键字:this

3.构造方法

3.1构造方法:
    作用:给对象的数据进行初始化
    格式特点:
        A:方法名和类名相同。
            public void Student() {}
        B:没有返回值类型。
            修饰符 返回值类型 方法名(...) {...}
        C:没有返回值。
            没有用return带明确的值回来。
            return;
3.2构造方法注意事项
    A:如果你不提供构造方法,系统会给出默认无参构造方法
    B:如果你提供了构造方法,系统将不再提供默认无参构造方法
        这个时候怎么办呢?
            a:使用自己给的带参构造。
            b:要么自己再提供一个无参构造

            建议:建议永远自己给出无参构造方法。
    C:构造方法也是可以重载的。

练习:测试标准学生代码

    /**
     * 
     * 学生类:
            成员变量:
                name,age,address
            构造方法:无参,带参

            成员方法:getXxx()/setXxx()
                      show(),study()        
     *
     */
public class Student {
    //私有成员变量
    private int age;
    private String name;
    private String address;
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public  String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public void show(){
        System.out.println(name+"  "+age+" "+address);
    }
    public void study(String zhaoshi){
        System.out.println(name+"学习"+zhaoshi);
    }
    //无参构造方法
    public Student(){}
    //有参构造方法
    public Student(String name,int age,String address){
        this.address=address;
        this.age=age;
        this.name=name;
    }


}
public class Test {
    public static void main(String[] args) {
        Student s1 = new Student();//调用无参构造方法
        s1.setName("郭靖");
        s1.setAge(18);
        s1.setAddress("牛家村");
        s1.show();
        s1.study("降龙十八掌");
        System.out.println("-----------------------");
        Student s2 = new Student("黄蓉", 17, "桃花岛");//调用有参构造方法
        s2.show();
        s2.study("打狗棒法");

    }

}

运行结果:
Student_test

4.static

为了体现共用的数据,java就提供了一个关键字:static。
static:作用:可以修饰成员变量和成员方法

特点:
    A:随着类的加载而加载
    B:优先于对象存在
    C:被类的所有对象共享
        也是我们判断该不该使用静态修饰一个数据的依据。
        举例:
            饮水机:static
            水杯:特有的内容。
    D:可以通过类名调用
        静态变量:类变量
        非静态变量:实例变量,对象变量

        非静态的:创建对象访问
        静态的:可以通过类名,也可以通过对象访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值