成员变量与局部变量区别 封装 与this关键字

本文详细解析了成员变量与局部变量在位置、内存、生命周期和初始化值上的区别,并介绍了封装概念及其在代码中的应用。通过学生类实例,展示了如何使用private关键字和this关键字来实现封装。

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

成员变量与局部变量

在类中的位置不同

		成员变量:在类中方法外
		局部变量:在方法定义中或者方法声明上

在内存中的位置不同

		成员变量:在堆内存
		变量:在栈内存

生命周期不同

	成员变量:随着对象的创建而存在,随着对象的消失而消失
	局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

初始化值不同

	成员变量:有默认初始化值
	局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。

封装的概念

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

优点

	隐藏实现细节,提供公共的访问方式
	提高了代码的复用性
	提高安全性。

封装原则

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

举例:定义一个学生类并在其中定义属性及可实现的功能

/*
package westos.work;

public class Student {
//定方法变量义
private String name;
private int num;
private String sex;

//定义无参变量
public Student() {
}
//定义有参变量
public Student(String name, int num,String sex) {
this.name = name;
this.num = num;
this.sex = sex;
}

//定义get和set方法对定义的变量进行赋值
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public int getNum() {
    return num;
}

public void setNum(int num) {
    this.num = num;
}

public String getSex() {
    return sex;
}

public void setSex(String sex) {
    this.sex = sex;
}

//定义方法在程序中调用实现功能
public void studay(){
System.out.println(“学习JAVA”);
}
}

package westos.work;

public class MyText1 {
public static void main(String[] args) {
    Student student = new Student();//new 一个新的对象用来实现操作
    student.setName("蔡徐坤");//用set方法进行参数赋值
    student.setNum(2);
    student.setSex("男");
    System.out.println(student.getName());
    System.out.println(student.getNum());
    System.out.println(student.getSex());
    student.studay();
    System.out.println("====================");
    Student student1 = new Student("张三",3,"男");//用有参变量进行赋值
    System.out.println(student1.getName());
    System.out.println(student1.getNum());
    System.out.println(student1.getSex());
   student.studay();
}*/

private关键字特点
a:是一个权限修饰符
b:可以修饰成员变量和成员方法
c:被其修饰的成员只能在本类中被访问

this关键字

this的作用

	当我们的局部变量和成员变量相同的时候,如果我们不使用this关键字,那么会导致       一个问题:就是局部变量隐藏了成员变量的问题

this关键字特点

	是当前类的对象引用。
	简单的记,它就代表当前类的一个对象。谁调用这个方法,那么该方法的内部的this就代表谁

this的应用

	解决局部变量隐藏成员变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值