黑马程序员技术交流社区
标题:
求指教
[打印本页]
作者:
wy_heima
时间:
2014-5-20 10:56
标题:
求指教
本帖最后由 wy_heima 于 2014-5-21 12:11 编辑
//在打印语句中如何打印这3个x变量?
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
System.out.println(?);
}
}
}
复制代码
作者:
Mr._Strange
时间:
2014-5-20 12:35
你的代码很不规范啊!!
class A
{
public static void main(String[] args)
{
int x = 1;
System.out.println("第一个x: "+x);
B b =new B();
b.func();
}
static class B
{
B()
{
int x =2;
System.out.println("第二个x:"+x);
}
public void func()
{
int x =3;
System.out.println("第三个x:"+x);
}
}
}
复制代码
作者:
weimoliang
时间:
2014-5-20 12:56
如果你想在内部类的方法访问属性是这个样子的,如有问题,欢迎指正!
class A{
int x = 1;
class B{
int x = 2;
void fun(){
int x = 3;
//1.这个表示访问A类对象的 x 属性
System.out.println(A.this.x);
//2.这个表示为访问B类对象的 x属性,也可写成 this.x。代表当前对象的属性。
System.out.println(B.this.x);
//3.属性访问具有"就近原则",如果方法中有,就不会去方法外找。如果方法外没有就会去类中找
// 如果内部类中没有,就去外部类中找.
System.out.print(x);
}
}
}
public class InnerDemo {
public static void main(String[] args) {
//实例化外部类的格式—— 外部类.内部类 对象 = new 外部类.new.内部类;
A.B b = new A().new B();
b.fun();
}
}
复制代码
作者:
屈_zi
时间:
2014-5-20 15:37
package com.itheima;
class A {
int x = 1;
class B {
int x = 2;
void func() {
int x = 3;
//对于func中x,直接使用x,对class B中x可以是用this.x,因为func所在的当前对象this是B,
//对于A中的x,可以用A.this.x表示this指向的是A
System.out.println(x + " " + this.x + " " + A.this.x);
}
}
}
public class PrintTTT {
public static void main(String[] args) {
//调用内部类的方法,需要创建内部类的对象
new A().new B().func();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2