问答详情
源自:7-1 什么是 Java 中的封装

关于封装修改属性的问题

package com.immoc;
import com.immoc.Telphone;
public class Telphone{
private float screen;//屏幕大小
private float cpu;
private float mem;//内存大小
 public Telphone(float newScreen,float newCpu,float newMem){
  screen=newScreen;
  cpu=newCpu;
  mem=newMem;
 }
public static void main(String[] args) {
  Telphone phone2=new Telphone(5.0f,1.4f,2.0f);
  phone2.cpu=6.0f;
  System.out.println("screen:"+phone2.screen);
     System.out.println("cpu:"+phone2.cpu);
  System.out.println("mem:"+phone2.mem);
 }
}

我不是封装了吗? 为何简简单单一改便成功了 输出数据cpu是6.0

提问者:枸杞我最爱 2018-06-10 09:47

个回答

  • ByteMan
    2019-01-09 21:49:27

    你在一个类中进行修改的原因,你看看老师是创建了两个类

  • 慕粉1922375890
    2018-06-15 19:49:48

    被private修饰的属性可以在本类中被访问,封装应该是针对不同类来讲的,你可以试一下,在其他类调用被private修饰的成员变量,像你这样直接赋值就会报错了。

  • 慕前端0218834
    2018-06-10 11:01:14

    因为构造函数就是给你成员赋一个初始值,当你给变量再赋值的时候,他就会把初始值给覆盖掉,而且调用你赋的那个值,原先的那个初始值就会被系统的垃圾回收器回收。