博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内部类
阅读量:6520 次
发布时间:2019-06-24

本文共 2199 字,大约阅读时间需要 7 分钟。

转载: 

1.内部类的今本定义

   在类内部可定义成员变量与方法,而且在类内部也可以定义另一个类。如果在类Outer的内部定义一个Inner,此时类Inner就成为内部类,而Outer则成为外部类。

内部累可声明成public或private。当内部累声明成public或者private时,对其访问的限制与成员变量和成员方法相同。下面列出了内部累的定义格式:

【内部类的声明格式】

  标识符 class 外部类的名称{

    //外部类的成员

    标识符class内部类的名称{

    //内部累的成员

  }

}

范例:定义内部类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package
 
test;
 
class
 
Outer {
//定义外部类
    
private
 
String info =
"hello word"
;
//定义外部类的素有属性
 
    
class
 
Inner {             
//定义内部类
        
public
 
void
 
print() {
//内部类的方法
            
System.out.println(info);
//直接访问外部类私有属性
        
}
    
};
 
    
public
 
void
 
fun() {             
//定义方法
        
new
 
Inner().print();
//通过内部累对象调用方法
    
}
};
 
public
 
class
 
InnerClassDemo01 {
    
public
 
static
 
void
 
main(String args[]) {
        
new
 
Outer().fun();         
//调用外部类的fun()方法
    
}
}

  结果:

  hello word

内部类的唯一好处:就是可以方便的访问外部类中的私有属性。

2.使用static定义内部类

使用static可以声明属性或方法,而使用static也可以声明内部类,用static声明的内部类变成了外部类,但是static声明的内部类不能访问非static的外部类属性,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package
 
test;
 
class
 
Outer {
// 定义外部类
    
private
 
static
 
String info =
"hello word"
;
// 定义外部类的素有属性
 
    
static
 
class
 
Inner {
// 使用static定义内部类为外部类
        
public
 
void
 
print() {
            
System.out.println(info);
        
}
    
};
};
 
public
 
class
 
InnerClassDemo01 {
    
public
 
static
 
void
 
main(String args[]) {
        
new
 
Outer.Inner().print();
// 访问内部类
    
}
}

  

3.在外部访问内部类

【在外部访问内部类】

外部类.内部类  内部类对象=外部类实例.new   内部类();

首先要找到外部类的实例化对象之后才可以通过外部类的实例化对像去实例化内部类的对象。

例子:

package
 
test1;
 
class
 
Outer {
    
private
 
String info =
"hello word!!!"
;
 
    
class
 
Inner {
        
public
 
void
 
print() {
            
System.out.println(info);
        
}
    
}
}
 
public
 
class
 
InnerClassDemo04 {
    
public
 
static
 
void
 
main(String args[]) {
        
Outer out =
new
 
Outer();
        
Outer.Inner in = out.
new
 
Inner();
        
in.print();
    
}
}

  结果:

hello word!!!

4.在方法中定义内部类

也可以在方法中定义一个内部类,但是在方法定义的内部类不能直接访问方法中的参数,如果方法中的参数要想被内部类所访问,则参数前必须加上final关键字。

范例:在方法中定义内部类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package
 
test2;
 
class
 
Outer {
    
private
 
String info =
"hello  word!!!"
;
 
    
public
 
void
 
fun(
final
 
int
 
temp) {
        
class
 
Inner {
            
public
 
void
 
print() {                          
//方法中定义一个内部类
                
System.out.println(
"类中的属性:"
 
+ info);
                
System.out.println(
"方法中的参数:"
 
+ temp);
            
}
        
}
        
;
        
new
 
Inner().print();
    
}
}
 
public
 
class
 
InnerClassDemo05 {
    
public
 
static
 
void
 
main(String args[]) {
        
new
 
Outer().fun(
30
);
    
}
}

  结果:

类中的属性:hello word!!! 方法中的参数:30

转载于:https://www.cnblogs.com/lm3306/p/3274648.html

你可能感兴趣的文章