java封装性的运引用_java 封装性 引入传递

1.引用传递是java精髓,核心概念只有一点:一块堆内存空间(保存对象的属性和信息)可以同时被多个栈内存所共同指向,则每一个栈内存都可以修改同一块堆内存空间的属性值.

引用传递的核心只有一句话:“一块堆内存空间(保存对象的属性信息)可以被同时多个栈内存所共同指向,则每一个栈内存都可以修改同一块堆内存空间的属性值”.

1.1下面代码讲解

3f3562ea6661a027e60eb596bf38b8c4.png

运行结果

首先实例化了一个person2对象,对对象name和age属性赋值,随后又声明了person3对象,这个对象指向person2对象的堆内存空间,所以person3和person2指向了同一个堆内存空间,这样person3对name属性的修改也一定影响到person2对象.

9d0cf5d8d3ea119663ccf9aa897ae444.png

1.2.代码讲解

832e186aab3b9072330385c8aa6c2b80.png

代码运行结果

本程序实例化了两个对象,分别为两个对象的属性赋值,而后将person1的堆内存传递给了person2,此时person2和person1将指向同一堆内存空间,当使用person2对象修改name属性的内容后,person1的内容也随之发生改变,

28fd2394713fb03d5ff0cbbf22b71023.png

2.java封装性

下面代码讲解

加入了private关键字之后,发现Person类的外部将无法直接利用对象调用类中的属性,并且在编译就提示语法错误,在java开发中,如果要访问类的私有属性,需要按下形式定义操作方法.

setter(以"private String name"属性为列):public void setName(String n);

getter((以"private String name"属性为列)public void getName();

4c6aef960cf2fcd866e9dea882a2f351.png

2.1代码讲解

在类属性中定义setter()、getter()操作方法目的是为了设置和取得属性的内容,也许某一个操作暂时不使用取得操作、但并不表示以后不会使用,所以必须全部提供,在以后定义类的时候,所有属性都要编写private封装,封装之后属性如果需要被外部操作,要编写setter()、getter()方法。

package lesson11;

class Person3{ //类名称首字母大写

private String name; //属性封装

private int age; //属性封装

void setName(String n){ //setter:设置name属性内容

name =n;

}

void setAge(int a){ //setter:设置age属性内容

if(a>0 && a<250){ //增加检查

age=a;

}

}

public String getName() { //getter:取得name属性内容

return name;

}

public int getAge() { //getter:取得age属性内容

return age;

}

public void tell(){

System.out.println("姓名:"+name+",年龄:"+age);

}

}

public class TestDeamo13 {

public static void main(String[] args) {

Person3 person=new Person3(); //声明并实例化对象

person.setName("芷若");

person.setAge(18);

person.tell();

}

}

运行结果

7f0dc3e765470617c64e54ae7db8adda.png

346d389e55cccbbe96a8afa695b272da.png

de638df49f1d5a3342eecff86bcb011e.png

morning to afternoon

发布了18 篇原创文章 · 获赞 2 · 访问量 561

私信

关注

标签:封装,name,对象,内存空间,private,person2,引入,java,属性

来源: https://blog.csdn.net/ysy_1_2/article/details/104130504

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值