当前位置:网站首页>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无线模组解决方案全面推动高效、低碳智能电网
- 2022 gas examination registration and free gas examination questions
- Div hidden in IE 67 shows blank problem IE 8 is normal
- 力扣今日题-1200. 最小绝对差
- 1. Getting started with QT
- 【Go基础】2 - Go基本语句
- What sparks can applet container technology collide with IOT
- Mouse over to change the transparency of web page image
- FOC控制
- AcWing 244. Enigmatic cow (tree array + binary search)
猜你喜欢

Moher college phpMyAdmin background file contains analysis traceability

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

Go h*ck yourself:online reconnaissance (online reconnaissance)

1. Qt入门

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

Heap concept in JVM

Azure ad domain service (II) configure azure file share disk sharing for machines in the domain service
![[Gurobi] 简单模型的建立](/img/3f/d637406bca3888b939bead40b24337.png)
[Gurobi] 简单模型的建立

墨者学院-PHPMailer远程命令执行漏洞溯源

zabbix 5.0监控客户端
随机推荐
PHP session variable passed from form - PHP
How to use MOS tube to realize the anti reverse connection circuit of power supply
线性代数1.1
Three paradigms of database design
[go basics] 1 - go go
Show server status on Web page (on or off) - PHP
Leetcode 23. 合并K个升序链表
学习Nuxt.js
Comprendre la méthode de détection des valeurs aberrantes des données
Easy to understand: understand the time series database incluxdb
How to reset IntelliSense in vs Code- How to reset intellisense in VS Code?
PCIe knowledge points -010: where to get PCIe hot plug data
Technology sharing | MySQL parallel DDL
Ecole bio rushes to the scientific innovation board: the annual revenue is 330million. Honghui fund and Temasek are shareholders
Application of isnull in database query
Leetcode 146. LRU 缓存
Call Baidu map to display the current position
Use preg_ Match extracts the string into the array between: & | people PHP
The second session of the question swiping and punching activity -- solving the switching problem with recursion as the background (I)
The text box displays the word (prompt text) by default, and the text disappears after clicking.