java封装的问题。。。。。。。

有a,b两个类,b有个私有变量c和其他方法d,为什么a可以通过调用d方法的形式把c打印出控制台来??

私有变量c不是只能本类使用吗?

0

6个回答

私有变量确实是只有本类才能使用。
b的私有变量c是给b的其他方法d使用的,没有直接给a使用。
a调用b的其他方法d间接的可以使用私有变量c,但不能直接使用,只能通过其他方法d使用。
b通过其他方法d来约束别的类(比如a),只能通过方法d的方式去使用私有变量c。
建议在入门的时候看点好书,别看渣渣java书籍,因为书上说的不清楚,你理解就更不清楚了。

4

本来就是可以这么用的,这个也是私有变量的正确用法。
私有的意思是指外部类不能直接调用对象.变量来直接查询或修改私有变量的值,只能通过类中已经定义了的方法来进行。
例如b b1 = new b();之后,不能通过b1.c来直接操作c这个私有变量,只能通过调用b类中的函数来进行。

1

目前我也是小白,我说说我的理解,各位大佬也帮我点评下
类成员的封装:
1、在不封装的情况下得到的数据是不安全的,比如你类的一个成员属性是String类型的 gender,这时候我直接传入一个我不是男人也不是女人的字符串进来,你想下得到的结果是什么
2、实例化一个对象的时候写法的问题,获取值与设置值你会一目了然
3、我们一般不会直接去修改一个类的变量,而是通过方法去访问
4、面向对象思想核心就是封装、继承、多态,封装之后的产物更具有类属性的特点,这样子我们可以在封装过程中对数据进行安全的处理和操作。打个比方我们男人这个类,有年龄、性别、地区等等,我们可以在这个类中对其数据进行安全的处理。
纯手打,这是我的领悟,不知道对你有没有用,相互学习,如阐述过程中有问题的,还望大伙指正

0

c是私有变量,不能直接打印,但是可以通过其他方法比如get,set方法来操作进行

0

我认为这是多态 并不是封装。基础确实很重要 !~

0

通过get打印或者间接调用b中的方法打印

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一个JAVA的封装问题
类B:rnpublic interface B rn public void methodD();rnrn------------------------------------rn类A:rnpublic abstract class A implements Brn abstract void methodA();rn abstract void methodB();rn abstract void methodC();rn public void methodD()rn methodC();rn methodB();rn methodA();rn rnrn--------------------------------------rn类D:rnpublic class D extends A rnrn void methodA() rn // TODO Auto-generated method stubrn System.out.println("方法A");rn rnrn void methodB() rn // TODO Auto-generated method stubrn System.out.println("方法B");rn rnrn void methodC() rn // TODO Auto-generated method stubrn System.out.println("方法C");rn rnrnrn----------------------------------------rn类C:rnpublic class Crn public B methodE()rn B c=new D();rn return c;rn rnrn这个类到底怎么理解呢?rn-------------------------------------rnpublic class Test rnrn /**rn * @param argsrn */rn public static void main(String[] args) rn // TODO Auto-generated method stubrn C d=new C();rn B c=d.methodE();rn c.methodD();rn rnrnrnrn上面类C里的: B c=new D(); 这到底怎么回事呢?不是父类与子类之间才可以这样的吗?现在这样是什么意思呢?rn
java封装封装的概念
java封装 封装的概念,封装的应用,以及如何编写
java封装
package test; //封装 public class PackageTest { //第一步:私有 private String name ; private int age; //第二步:公开方法 public String getName() { return name; } public void setName
Java——封装
在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。 封装可以防止该类的代码和数据被外部类定义的代码随意访问。 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。 适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。 封装的优点 1. 良好的封装能够减少...
Java封装
 众所周知,面向对象技术有三大法宝。一曰:继承。二曰:多态。三曰:封装。   在我们取出这三个大宝贝之前,先看一下另一个小宝贝——包(package),也可以称为软件包。 用户可以将一组相关的类或接口封装在包里,从而更好地管理已开发的java代码。 在创建新的包的时候,包声明语句要求必须是定义类或接口或枚举类型的java源程序文件的第一条语句。 格式:package 包名; 包名可...
JAVA封装
ackage third; //封装 //get方法和set方法获得快捷键:右键,source,set/get public class Student { private int age; public void setAge(int age) { if(age<0) { this.age=0; }else if(ag...
java—封装
java—封装 封装:把对象的属性和行为结合成一个单独的单位,并尽可能的隐藏对象的内部细节(数据),外部不能直接访问,只能根据有限的对外接口与其发生联系。 public class User { private int userId;//用户ID private String userName;//用户名 private String sex;//性别 private int age;//...
Java 封装
封装概念 把具有相同属性和行为的类,封装到一个类中,并提供共有属性访问私有属性的机制。 封装的优点 减少耦合 对成员变量进行更加准确的控制(修改属性的可见性) 隐藏信息 public class encapsulation{ private String name; private ing age; public void setName(String name){ this.nam
【Java】封装
定义:将对象的实现细节隐藏起来,然后通过一些公用的方法来暴露该对象的功能,提高类的内聚性,降低对象间的耦合性 Get、Set方法:public void setName(String name) { this.name=name; } public void getName() { return this.name; }
java 封装
封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。 public class Ti me { //封装的好处 //设置成private属性,不允许直接调用赋值,只能通过方法。 private int hour;
java的封装
是一些关于java的封装代码,有构造也有代码,例题的题目都在里面供参考的。
Java之封装
什么是封装?  把很多的字段保护起来 使用private进行修饰封装 为什么需要把类中的字段私有化起来???   ---》 安全 体现: 把类中的字段私有化(防止外界访问本类的字段  即使用private修饰本类的字段);   给每一个字段都提供一组getter  setter方法  (方法的规范写法);setXxx() , getXxx() 在测试类中尝试创建对象,并通过调用gett...
Java的封装
修改属性的可见性 设置属性访问修饰为 private 创建允许访问的接口 getter/setter方法,访问修饰为public 在 getter/setter方法中加入控制逻辑,保证系统安全稳定 代码片段 private int age;//年龄 public int getAge() { return this.age; } ...
Java:封装
封装   1.封装是Java三大特征之一,指使用公有方法操作类中私有属性以保证数据的安全性。   注:age属性的值一定会大于、等于0且小于150    2.Eclipse中快速生成setter方法和getter方法:          ⑴鼠标定位在类中à鼠标右键à点击“Source”à点击“Generate Getters and Setters...”,出现下图:   ...
java 封装
作用:隐藏内部实现细节,防止外部修改。 实例: private String name; private String idNum; private int age; public String getName(){ return name; } public String getIdNum(){ return
java之封装
java之封装 简介 封装是将部分代码细节隐藏和包装起来,不对外暴露。 封装好处 降低耦合性,维护时只需修改封装部分代码而不需要修改调用代码。在类内部进行自由修改。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部随机访问。使得要访问该类的代码和数据必须通过严格的接口控制。 隐藏信息对外隐藏实现细节。 减少其他人看你类的时间,让调用的人看你代码更简单。 安全性上,适当的封装可以让程序...
JAVA——封装
标题一、封装的作用 1.外界不希望能够直接访问我的数据。 2.希望外界传递给类的内部的数据能够得到数据校验,不得任其随意修改。 标题 二、封装的概念 对数据进行访问权限控制,主要依赖的就是访问权限修饰符。 访问权限修饰符: public protected [default] private 标题三、 如何来对数据进行封装? 对需要封装的数据成员使用访问权限修饰符(private)加以修饰。 ...
Java封装
Java封装 1.什么是封装 封装可以认为是一个保护屏障,防止代码和数据被外部类定义的代码随机访问。封装最主要的功能在于我们可以修改自己的实现代码,而不用修改那些调用我们代码的程序片段。封装加强了代码的安全性。 2.封装的优点 1.良好的封装能够减少耦合性2.类内部的结构可以自由修改3.隐藏信息,增强安全性 3.实现封装的步骤 修改属性的...
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑