当前位置:网站首页>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();
}
}
边栏推荐
- Difference between static method and non static method (advantages / disadvantages)
- If the array values match each other, shuffle again - PHP
- Parallel shift does not provide any acceleration - C #
- Heap concept in JVM
- Newh3c - routing protocol (RIP, OSPF)
- Use preg_ Match extracts the string into the array between: & | people PHP
- Guanghetong's high-performance 4g/5g wireless module solution comprehensively promotes an efficient and low-carbon smart grid
- yolov5 xml数据集转换为VOC数据集
- PCIe knowledge points -010: where to get PCIe hot plug data
- Collections in Scala
猜你喜欢

ZABBIX monitoring system custom monitoring content

【Go基础】1 - Go Go Go

1、卡尔曼滤波-最佳的线性滤波器

Moher College webmin unauthenticated remote code execution

Moher college phpMyAdmin background file contains analysis traceability

Do you know about autorl in intensive learning? A summary of articles written by more than ten scholars including Oxford University and Google

Redis sentinel mechanism

Moher College phpmailer remote command execution vulnerability tracing

线性代数1.1

How to use MOS tube to realize the anti reverse connection circuit of power supply
随机推荐
How to write a summary of the work to promote the implementation of OKR?
2022 gas examination registration and free gas examination questions
Relations courantes de la fiche de données d'exploitation pour les activités
Devops Practice Guide - reading notes (long text alarm)
Show server status on Web page (on or off) - PHP
Heap concept in JVM
Newh3c - network address translation (NAT)
What determines vacuum permittivity and vacuum permeability? Why do these two physical quantities exist?
Oracle-存储过程与函数
SQL注入测试工具之Sqli-labs下载安装重置数据库报错解决办法之一(#0{main}thrown in D:\Software\phpstudy_pro\WWW\sqli-labs-……)
Li Kou today's question -1200 Minimum absolute difference
PHP converts seconds to timestamps - PHP
deno debugger
C # implements a queue in which everything can be sorted
PCIE知识点-010:PCIE 热插拔资料从哪获取
Do you know about autorl in intensive learning? A summary of articles written by more than ten scholars including Oxford University and Google
SQL statement view SQL Server 2005 version number
DM8 database recovery based on point in time
How to reset IntelliSense in vs Code- How to reset intellisense in VS Code?
C#实现一个万物皆可排序的队列