java如何隐藏成员变量_java成员变量隐藏

关于

java成员变量隐藏的搜索结果

回答

注意和楼上那个比较######同名变量 会有两个,隐藏只会有一个######

哈哈,建议你放弃JAVA吧######知道了这个是同一个变量,不是同名, 为什么劝我要放弃?######

你这子类 的成员变量不是继承来的吗,又不是子类特有的 ######嗯嗯知道了,谢谢 之前被子类继承父类后拥有子+父误导了,以为产生了新变量######

请看同名的情况。为 子类 B 添加一个和父类 A 同名的成员变量 password, 结果就不同了吧?

子类成员变量:22 父类成员变量:11

public class B extends A {

//此处,为子类添加一个和父类同名的成员变量

private String password;

public B(String password) {

//调用父类的构造方法,将创建子类的参数值,传给父类的成员变量

super(password); /

// 以字符串"22" 赋值给子类的成员变量

this.password = "22";

//结果,子类成员变量的值,一定是 "22"

System.out.println("子类成员变量:"+this.password);

//父类的成员变量,是创建子类时所接受的参数值,由17行得知,应当是"11"

System.out.println("父类成员变量:"+super.password);

}

public static void main(String[] args) {

@SuppressWarnings("unused")

B b = new B("11");//用参数值"11"创建子类

}

}

class A{

protected String password;

public A(String password) {

this.password = password;

}

}

######是的

python小菜菜

2020-06-19 13:38:40

0 浏览量

回答数 0

回答

注意和楼上那个比较######同名变量 会有两个,隐藏只会有一个######

哈哈,建议你放弃JAVA吧######知道了这个是同一个变量,不是同名, 为什么劝我要放弃?######

你这子类 的成员变量不是继承来的吗,又不是子类特有的 ######嗯嗯知道了,谢谢 之前被子类继承父类后拥有子+父误导了,以为产生了新变量######

请看同名的情况。为 子类 B 添加一个和父类 A 同名的成员变量 password, 结果就不同了吧?

子类成员变量:22 父类成员变量:11

public class B extends A {

//此处,为子类添加一个和父类同名的成员变量

private String password;

public B(String password) {

//调用父类的构造方法,将创建子类的参数值,传给父类的成员变量

super(password); /

// 以字符串"22" 赋值给子类的成员变量

this.password = "22";

//结果,子类成员变量的值,一定是 "22"

System.out.println("子类成员变量:"+this.password);

//父类的成员变量,是创建子类时所接受的参数值,由17行得知,应当是"11"

System.out.println("父类成员变量:"+super.password);

}

public static void main(String[] args) {

@SuppressWarnings("unused")

B b = new B("11");//用参数值"11"创建子类

}

}

class A{

protected String password;

public A(String password) {

this.password = password;

}

}

######是的

kun坤

2020-06-06 13:55:35

0 浏览量

回答数 0

回答

第一步我们首先需要了解java中的封装指的是什么,封装是一种将抽象性接口的实现细节都包装和隐藏起来的方法,它具有减少耦合,类内部结构可以修改,成员变量精准控制的优点,如下图所示:

java中封装是什么,怎么实现封装

第二步下面来介绍java中的封装步骤,打开eclipse,封装首先会通过private私有化变量,限制对类属性的访问,如下图所示:

java中封装是什么,怎么实现封装

第三步通过set和get方法设置对每个属性对外访问接口,外部需要改变类的属性,需要通过这些公共public的方法,如下图所示:

java中封装是什么,怎么实现封装

第四步这里介绍一个java封装类的实例,创建一个Test雷,对变量进行私有,方法进行公共,set和get方法可以自动生成,如下图所示:

java中封装是什么,怎么实现封装

第五步创建一个Test2类,创建Test类的对象,通过对象设置封装类的属性,然后通过get方法获取这些属性,如下图所示:

java中封装是什么,怎么实现封装

第六步运行项目指挥,在控制台可以看到成功获取了封装类的属性,如下图所示:

java中封装是什么,怎么实现封装

游客lz7tjhznmiyda

2019-12-02 01:03:55

0 浏览量

回答数 0

回答

java上转型对象属性:上转型对象不能操作子类新增加的成员变量,不能使用子类新增的方法。即为较子类B失去一些属性和功能,这些属性和功能是新增的。上转型对象可以操作子类继承或隐藏的成员变量,也可以使用子类继承的或重写的方法。即为上转型对象可以操纵父类原有的属性和功能,无论这些方法是否被重写。上转型对象调用方法时,就是调用子类继承和重写过的方法。而不会是新增的方法,也不是父类原有的方法。可以将对象的上转型对象再强制转换到一个子类对象,强制转换过的对象具有子类所有属性和功能。因为你父类中f()是私有的,没有被子类所继承和重写,所以调用的是自身的f()方法。输出Private f()

蛮大人123

2019-12-02 01:52:10

0 浏览量

回答数 0

回答

super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)

this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)

super()和this()类似,区别是,super()在子类中调用父类的构造方法,this()在本类内调用本类的其它构造方法。

super()和this()均需放在构造方法内第一行。

尽管可以用this调用一个构造器,但却不能调用两个。

this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。

this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

问问小秘

2020-03-27 16:47:14

0 浏览量

回答数 0

回答

I. 原则:灵活运用,而非刻意遵循

基础原则尽量少的重复代码,低耦合(尽量小的影响),高内聚

模块,可小到一个类,大到一个系统

模块间耦合因素构建架构时,需要谨慎耦合的因素

模块间调用

模块间传递的数据量

模块间控制

模块间接口复杂度

模块间耦合从弱到强顺序构建架构或简单的类时,需要根据实际情况尽量契合弱的模块间耦合关系

做到职责分明,简单轻量,尽量少的潜在性的数据流动,尽量少的相互影响,避免牵一发而动全身

非直接耦合: 相互之间没有直接关系,而是由第三方模块控制和调用

数据耦合: 通过传递java的内置数据类型通讯

标记耦合: 都引用了共同的数据结构,并且通过传递该数据结构通讯

控制耦合: 通过传递开关、标志、名字等控制信息,明显的控制选择另一个模块的功能

外部耦合: 都访问一个java的内置数据类型的全局变量

公共耦合: 都访问了一个公共代码块( 全局数据结构、公共通讯区、内存公共覆盖区等)

内容耦合: 一个模块直接修改另外一个模块的数据。

降低耦合度的方法少用类继承,多用类接口隐藏实现细节

模块功能尽量单一

拒绝重复代码

尽量不使用全局变量(Android中的全局变量会有一些坑,因为Attach在ClassLoader上的,因此根据不同ROM的优化,可能会在未预料的情况被unload,导致数据丢失)

类成员变量与方法少用public,多用private

尽量不用硬编码(如 字符串放到 res/string.xml,SQL语句做一层基于业务的封装供上层使用)

使用设计模式,尽量让模块间的耦合关系保证在数据耦合或更弱

wangccsy

2019-12-02 01:48:21

0 浏览量

回答数 0

问题

Java技术1000问(3)【精品问答】

为了方便Java开发者快速找到相关技术问题和答案,开发者社区策划了Java技术1000问内容,包含最基础的Java语言概述、数据类型和运算符、面向对象等维度内容。

我们会以每天至少50条的速度,增...

问问小秘

2020-06-02 14:27:10

11463 浏览量

回答数 3

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值