当前位置:网站首页>Internal learning
Internal learning
2022-07-04 08:25:00 【weixin_ fifty-three million fifty thousand one hundred and eigh】
Classification of internal classes : Member inner class ( Static inner class and non static inner class ), Local inner classes don't talk about modifiers , Anonymous inside
class .
1. Member inner class
A member inner class is equivalent to a member of a class :
Different from the outer class , Inner classes can be declared as private perhaps protected;
You can call members of external classes .
The inner class of the member is the member of the class :
You can define attributes in internal classes , Method , Constructors, etc
Can be declared as abstract class , So it can be inherited by other inner classes
Can be declared as final Of
Generate external classes after compilation $ Inner class .class Bytecode file ( Applicable to local inner classes )
Be careful :
1. Not static Members in inner classes cannot be declared as static Members of , Only in external classes or static Can only be declared in a member's inner class static member .
2. External classes access members, members of inner classes , Inner class object . The way members are .
3. Member inner classes can directly use all members of outer classes , Including private data
Inner classes can be declared as abstract classes , So it can be inherited by other inner classes , You can also state final Of .
Why use inner classes : Each inner class can independently inherit a ( Interface , abstract class ) Internship , So whether or not the outer class has inherited a certain ( Interface , abstract class ) Realization , No effect on inner classes . Sometimes in program design, there are some problems that are difficult to solve using interfaces , At this time, you can make use of the , The ability to inherit multiple concrete or abstract classes . Interface only solves most problems , The inner class makes the solution of multiple inheritance more complete . The biggest advantage of using inner classes is that it can solve the problem of multiple inheritance very well .
( The static ) Member inner class :
Outer outer=new Outer();
Outer.Inner inner=outer.new Inner();
( static state ) Member inner class :
Outer.Inner inner=new Outer.Inner();
2. Local inner classes
Local class scope : Code block , Constructors , Method .
The local class is still a separate class , After compilation, the inner class will be compiled to be independent .class file , But the front is preceded by the outside
Class name and $ Symbol , And numbers .
Local inner classes and local variables have similar status , Out of commission public,protected, default ,private
Local inner classes cannot use static modification , So you can't include static members either
Local inner classes can use members of external classes , Including private
Local inner classes can use local variables of external methods , But it must be final Of . It consists of declarations of local inner classes and local variables
Due to different periods .
3. Anonymous inner class
An anonymous class , Is a class without a name , Its name is given by Java Given by compiler , Anonymous classes cannot use any keywords and access control characters , The access rules of anonymous classes and local classes are the same .
interface Inner {
void say();
}
public class Test{
public static void main(String[] args) {
person(new Inner(){
@Override
public void say() {
System.out.println("java");
}
});
}
public static void person(Inner an){
an.say();
}
}
边栏推荐
- 广和通高性能4G/5G无线模组解决方案全面推动高效、低碳智能电网
- Snipaste convenient screenshot software, which can be copied on the screen
- NPM run build error
- es6总结
- 小程序容器技术与物联网 IoT 可以碰撞出什么样的火花
- 【Go基础】1 - Go Go Go
- Display Chinese characters according to numbers
- R language ggplot2 visualization: ggplot2 visualization grouping box diagram, place the legend and title of the visualization image on the top left of the image and align them to the left, in which th
- Google's official response: we have not given up tensorflow and will develop side by side with Jax in the future
- SSRF vulnerability exploitation - attack redis
猜你喜欢

小程序容器技术与物联网 IoT 可以碰撞出什么样的火花

弈柯莱生物冲刺科创板:年营收3.3亿 弘晖基金与淡马锡是股东

A method for detecting outliers of data

【Go基础】1 - Go Go Go

ZABBIX monitoring system custom monitoring content

Guanghetong's high-performance 4g/5g wireless module solution comprehensively promotes an efficient and low-carbon smart grid

Famous blackmail software stops operation and releases decryption keys. Most hospital IOT devices have security vulnerabilities | global network security hotspot on February 14

Take you to master the formatter of visual studio code

Linear algebra 1.1

JVM中堆概念
随机推荐
Leetcode (215) -- the kth largest element in the array
Leetcode 146. LRU 缓存
Leetcode(215)——数组中的第K个最大元素
[untitled] 2022 polymerization process analysis and polymerization process simulation examination
How to play dapr without kubernetes?
Flask 常用组件
Unity text superscript square representation +text judge whether the text is empty
团体程序设计天梯赛-练习集 L2-002 链表去重
Newh3c - routing protocol (RIP, OSPF)
墨者学院-Webmin未经身份验证的远程代码执行
2022 tower crane driver examination and tower crane driver examination questions and analysis
ZABBIX monitoring system deployment
DM8 database recovery based on point in time
How to write a summary of the work to promote the implementation of OKR?
Moher College phpmailer remote command execution vulnerability tracing
C # implements a queue in which everything can be sorted
Display Chinese characters according to numbers
deno debugger
真空介电常数和真空磁导率究竟是由什么决定的?为何会存在这两个物理量?
How to set multiple selecteditems on a list box- c#