静态的成员变量重名的解决方案

public class Demo07_StaticField {

static String name = "Jack";

public static void main(String[] args) {

String name = "Alex";

System.err.println(name);//Alex

System.err.println(Demo07_StaticField.name);//对于静态的变量,可以使用类名.形式直接访问成员 - Jack

new Demo07_StaticField().say();

}

public void say(){

String name ="张三";

System.err.println(name);//张三

System.err.println(Demo07_StaticField.name);//在任意的位置,如果想访问一个静态的变量

}

}

小结:

1:重载

普通方法的重载

静态方法的重载。  Public static void say(){..}  public static void say(String name){…}

非静态的方法的重载。

构造方法的重载,主要影响 new实例化这个类的调用的方式。

2:this

3:成员变量与局部变量重名的解决方案

成员是静态的。 类名.成员变量名.

成员变量是非静态的如何访问。  - this.成员变量名.

时间: 2024-10-13 22:27:38

静态的成员变量重名的解决方案的相关文章

JavaSE8基础 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: /* * 当父类与子类中的成员变量重名了,使用super.名字 来访问父类的成员变量 */ //基类 class Person { public int num = 1; } //子类 class Javaer extends Person { //子类中的成员变量与父类重名了 public int num

规避Javascript多人开发函数和变量重名问题

函数和变量重名始终是一个令人头痛的问题,先讲变量吧,相信了解JS的朋友都知道,在JS中 是没有块级作用域的只有函数作用域,也就是说那些以大括号为界定符的代码块是管不住其中定义 的变量的作用域的,举例: 1 { 2 var num = 110; 3 } 4 console.log(num);//打印结果:110,而不是num is not defined 1 for(var j = 0; j < 5; j++); 2 console.log(j);//结果:5 怎么解决? 一般来说有经验的程序员会

c语言全局变量与局部变量(当变量重名时)的使用情况

在c语言中,变量有全局变量和局部变量之分,这一点和很多高级语言类似,如c#,java等.不过与c#,java中的局部变量如在全局变量作用域内则不允许与全局变量名相同,而c语言是允许这样做的.这样的做法极不提倡,但是c语言既然允许这么做,就分析一下其变量名相同时在不同位置调用该变量名时所实际调用的是哪个变量值. 代码如下: #include <stdio.h> //全局变量 //作用域:从定义开始到文件结束 //默认初始值为0 int c = 1; int test() { int c = 2;

c++子类和父类成员函数重名

1子类和父类返回值参数相同,函数名相同,有virtual关键字,则由对象的类型决定调用哪个函数. 2子类和父类只要函数名相同,没有virtual关键字,则子类的对象没有办法调用到父类的同名函数,父类的同名函数被隐藏了,也可以强制调用父类的同名函数class::funtion_name. 3子类和父类参数不同,函数名相同,有virtual关键字,则不存在多态性,子类的对象没有办法调用到父类的同名函数,父类的同名函数被隐藏了,也可以强制调用父类的同名函数class::funtion_name. 4子

shell脚本变量定义注意别跟系统变量重名了……

写了个很简单的脚本,执行结果却很奇怪.   1 #!/bin/bash 2 3 PATH=$HOME/vlc_transplant4 4 5 rm -f $PATH/vlc 6 ln -s $PATH/bin/vlc-static $PATH/vlc 执行结果: [email protected]:~/vlc_transplant4$ ./update.sh ./update.sh: 行 5: rm: 未找到命令 ./update.sh: 行 6: ln: 未找到命令 原因是自己在脚本中定义的P

如何区分3种变量重名的问题

原文地址:https://www.cnblogs.com/wulinmiao/p/12104120.html

JavaSE8基础 子类中的成员变量与父类重名 简单示例

os :windows7 x64    jdk:jdk-8u131-windows-x64    ide:Eclipse Oxygen Release (4.7.0)        代码: //基类 class Person { public int num = 1; } //子类 class Javaer extends Person { //子类中的成员变量与父类重名了 public int num = 2; public void showNum() { System.out.printl

【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法

. 一. 类定义 类定义需要实现两部分 : -- 接口部分 : 定义类的成员变量和方法, 方法是抽象的, 在头文件中定义; -- 实现部分 : 引入接口部分的头文件, 实现抽象方法; 1. 接口部分定义 (1) 接口部分定义格式 接口部分定义格式 : @interface className : superClassName { type _variableName; ... ... } - (type) methodName : type parameterName; @end -- 接口定义

【java基础】成员变量和局部变量

成员变量和局部变量 根据定义变量位置的不同,可以将变量分为成员变量和局部变量        成员变量是在类范围内定义的变量        局部变量是在一个方法内定义的变量   成员变量可以分为:        实例属性 (不用static修饰)               随着实例属性的存在而存在       类属性 (static修饰)               随着类的存在而存在   成员变量无需显式初始化,系统会自动对其进行默认初始化   局部变量可分为:        形参(形式参数)