当前位置:网站首页>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();
}
}
边栏推荐
- Scanf read in data type symbol table
- Famous blackmail software stops operation and releases decryption keys. Most hospital IOT devices have security vulnerabilities | global network security hotspot on February 14
- 墨者学院-phpMyAdmin后台文件包含分析溯源
- Put a lantern on the website during the Lantern Festival
- Unity-写入Word
- Need help resetting PHP counters - PHP
- [untitled] 2022 polymerization process analysis and polymerization process simulation examination
- Sports [running 01] a programmer's half horse challenge: preparation before running + adjustment during running + recovery after running (experience sharing)
- Activiti常见操作数据表关系
- Oracle-存储过程与函数
猜你喜欢
广和通高性能4G/5G无线模组解决方案全面推动高效、低碳智能电网
Easy to understand: understand the time series database incluxdb
Mouse over to change the transparency of web page image
[gurobi] establishment of simple model
线性代数1.1
Question 49: how to quickly determine the impact of IO latency on MySQL performance
【性能测试】一文读懂Jmeter
1. Qt入门
DM8 command line installation and database creation
SSRF vulnerability exploitation - attack redis
随机推荐
Difference between static method and non static method (advantages / disadvantages)
FRP intranet penetration, reverse proxy
The right way to capture assertion failures in NUnit - C #
WordPress get_ Users() returns all users with comparison queries - PHP
zabbix监控系统部署
Example analysis of C # read / write lock
SQL注入测试工具之Sqli-labs下载安装重置数据库报错解决办法之一(#0{main}thrown in D:\Software\phpstudy_pro\WWW\sqli-labs-……)
小程序容器技术与物联网 IoT 可以碰撞出什么样的火花
FOC控制
ZABBIX monitoring system deployment
DM8 command line installation and database creation
Convert datetime string to datetime - C in the original time zone
@Role of pathvariable annotation
Three paradigms of database design
DM8 tablespace backup and recovery
2022 examination questions for safety managers of metal and nonmetal mines (underground mines) and examination papers for safety managers of metal and nonmetal mines (underground mines)
Leetcode 23. Merge K ascending linked lists
Newh3c - routing protocol (RIP, OSPF)
2022 tower crane driver examination and tower crane driver examination questions and analysis
zabbix 5.0监控客户端