class Outer{
int i=100;
void inncl(){
final int i=10;//这个怎么访问
class Inner{
int i=1;
void test(int i){
System.out.println(i);
System.out.println(this.i);
//System.out.println(怎么访问final i);
System.out.println(Outer.this.i);}}
Inner inn=new Inner();
inn.test(0);
}
public static void main(String []args){
Outer o=new Outer();
o.inncl();}}希望各位大哥回答下,我是菜鸟没分,以后下次在补
int i=100;
void inncl(){
final int i=10;//这个怎么访问
class Inner{
int i=1;
void test(int i){
System.out.println(i);
System.out.println(this.i);
//System.out.println(怎么访问final i);
System.out.println(Outer.this.i);}}
Inner inn=new Inner();
inn.test(0);
}
public static void main(String []args){
Outer o=new Outer();
o.inncl();}}希望各位大哥回答下,我是菜鸟没分,以后下次在补
1、将代码进行良好的格式化,以方便阅读。
2、在发帖文本框的上方单击“#”按钮,选择 Java
3、将代码粘贴到【code=Java】和【/code】之间。发出来的帖子就会是下面的效果:public class Hello { // 程序入口
public static void main(String[] args) {
System.out.println("Hello!");
}
}
class Outer{
int i=100;
void inncl(){
final int i=10;//这个怎么访问
class Inner{
int i=1;
void test(int i){
System.out.println(i);
System.out.println(this.i);
//System.out.println(怎么访问final i);
System.out.println(Outer.this.i);}}
Inner inn=new Inner();
inn.test(0);
}
public static void main(String []args){
Outer o=new Outer();
o.inncl();}}
不传参数得了呗:class Outer
{
int i = 100; void inncl()
{
final int i = 10;//这个怎么访问
class Inner
{
void test()
{
//访问final i
System.out.println(i);
System.out.println(Outer.this.i);
}
}
Inner inn = new Inner();
inn.test();
} public static void main(String[] args)
{
Outer o = new Outer();
o.inncl();
}
}
谢谢回复
* 源代码如下
* 不解处:TalkingClock.start方法执行(clock.start(1000, true);)后,方法内部生成的Timer t对象已经不处于生存期,有点糊涂?
* 希望能说得透彻些!
*/ import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.Timer; public class AnonymousInnerClassTest
{
public static void main(String[] args)
{
TalkingClock clock = new TalkingClock();
clock.start(1000, true); // keep program running until user selects "Ok"
JOptionPane.showMessageDialog(null, "Quit program?");
System.exit(0);
}
} /**
* A clock that prints the time in regular intervals.
*/
class TalkingClock
{
/**
* Starts the clock.
* @param interval the interval between messages (in milliseconds)
* @param beep true if the clock should beep
*/
public void start(int interval, final boolean beep)
{
ActionListener listener = new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
Date now = new Date();
System.out.println("At the tone, the time is " + now);
if (beep) Toolkit.getDefaultToolkit().beep();
}
};
Timer t = new Timer(interval, listener);
t.start();
}
}
我自己还是个JAVA新手 没办法回答你的问题
同为局部变量,当前作用域中定义的变量屏蔽了父级作用域中的同名变量,比如:
int i = 0;
{
int i = 0;
// 这里也不能访问外层的变量i
}