成员变量与局部变量,以及private(私有变量)、构造方法的相关用法

这篇博客介绍了Java中成员变量和局部变量的区别,包括它们的位置、内存分配、生命周期和初始化值。同时,讨论了私有变量(private)的作用,指出其用于封装,限制外部访问,并需要通过getter和setter进行访问。此外,还详细解释了构造方法的功能,如何定义构造方法以及在对象创建中的作用。

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

成员变量:

                是在类中,且步子方法中的变量,叫做成员变量,有初始化值。

局部变量:

                在方法中的变量,叫做局部变量,它没有默认值,必须先定义,赋值,才能用。

成员变量与局部变量的不同点:

                 1、类中的位置不一样:成员变量在类中,方法外,而局部变量在方法内。

                2、内存位置不同:成员变量在堆内存,局部变量在栈内存。

                3、生命周期不同:创建对象时存在,对象消失则消失,局部变量跟方法一起,随着方法被调用而存在,调用完毕消失。

                4、初始化值不同:成员变量有初始化值,局部变量则没有。

 private:私有变量

                private:将属性和方法用private封装后表示,被封装的属性与方法只能在本类中使用,类外部不可见。 此时要想访问被封装的属性,必须提供getter与setter方法

代码:

package GolbalText2;
//        学生类
public class Student {
//    成员变量
    String name;
    private int age;

//    提供set方法,当括号里的变量名与成员变量名同名时:要用this.变量名:表示成员变量
//    不加this表示局部变量,防止遮挡成员变量
    public void setAge(int age) {
        this.age = age;
    }
//    提供get方法,返回值时什么类型,就用什么类型
    public int getAge() {
        return age;
    }
    public void show(){
        System.out.println(name+age);
    }
}

用private定义的成员变量不可以直接访问,我们可以通过get来访问

代码:

package GolbalText2;
//        测试类
public class StudentDemo {
    public static void main(String[] args) {
//        创建对象
        Student sd = new Student();
        sd.name="张三";
//        给带有封装属性的成员变量赋值

        sd.setAge(16);          //直接带入向管的值
//        显示类中的方法,通过show方法显示
        sd.show();

//        第二种显示,这是直接显示
        System.out.println(sd.name+sd.getAge());
    }
}

构造方法:初始化对象。

                java的构造方法在创建时被调用。Java有默认的构造方法,但是当想用别的构造方法时:需要重新定义构造方法。

                定义构造方法:

                                        1、方法名必须与类型相同

                                        2、可以没有参数,或多个参数

                                        3、返回值类型就是本身的类型

                                       4、跟创建对象中的new连用

package GolbalText3;
//  学生类
public class Student {
    String name;
    int age;
    public Student(){
        System.out.println("这是无参数的构造方法");
    }
    public void show(){
        System.out.println(name+","+age);
    }
}
------------------------------------------------------------------------------------package GolbalText3;
//  测试类
public class StudentDemo {
    public static void main(String[] args) {
//        创建对象
        Student ad = new Student();
        ad.show();
    }
}

可以看到 创建对象,其实也是在调用构造方法

构造方法传值的情况:

package GolbalText3;

import GolbalText2.Student;
/*
* 学生类
* */
public class Student1 {
    private String name;
    private int age;

//    无参构造方法,如果没有写,使用系统默认的构造方法
    public Student1(){
        System.out.println("这是无参构造方法");
    }

//    一个参数的构造方法:
    public Student1(String name){
        this.name = name;
    }
//    这是一个参数的构造方法
    public Student1(int age){
        this.age=age;
    }
//    这是两个的构造方法
    public Student1(String name,int age){
        this.name=name;
        this.age=age;
    }

    public void show(){
        System.out.println(name+","+age);
    }
}
package GolbalText3;
/*
* 测试类
* */
import GolbalText2.Student;

public class StudentDemo1 {
    public static void main(String[] args) {
//        创建对象,
        Student1 sd = new Student1();   //这个时候,学生类里的构造方法就已经开始执行了
        sd.show();
//          传一个参数(名字)
        Student1 sd1 = new Student1("张三丰");
        sd1.show();
//        传一个参数(年龄)
        Student1 sd2 = new Student1(16);
        sd2.show();
//          传两个参数(名字,年龄)
        Student1 sd3 = new Student1("周星驰",16);
        sd3.show();
    }
}

 到这里就结束了,若有错误请指正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

「已注销」

老板大气,I am happy

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

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

打赏作者

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

抵扣说明:

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

余额充值