package关键字的概述及作用
- package包就是文件夹,作用是将字节码文件(.class)进行分类
- package的注意事项:
- 2.1 package语句必须是程序的第一条可执行的代码
- 2.2 package语句在一个java文件中只能有一个
- 2.3 如果没有package,默认表示无包名
import关键字
- 作用是为了让有包的类对调用者可见,不用写全类名
- 导包的格式:import 包名;
内部类
- 在类中定义类就是内部类。
- 内部类访问特点
- a:内部类可以直接访问外部类的成员,包括私有。
- b:外部类要访问内部类的成员,必须创建对象。
- c:创建方式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
- 成员内部类的私有使用:
class Demo1{
public static void main(String[] args){
//错误的访问
//outer.inner oi = new outer.new inner();
//oi.method();
//正确的访问
outer o = new outer();
outer.print();
}
}
class outer{
private int num = 10;
//匿名内部类
private class inner{
public void method(){
System.out.println(num);
}
}
//公共方法访问内部类
public void print(){
inner i = new inner();
i.method();
}
}
- 面试题:
//要求:使用已知的变量,在控制台输出30,20,10,下面问好中填写什么
class Outer {
public int num = 10;
class Inner {
public int num = 20;
public void show() {
int num = 30;
System.out.println(?);//
System.out.println(??);//
System.out.println(???);//
}
}
class InnerClassTest {
public static void main(String[] args) {
Outer.Inner oi = new Outer().new Inner();
oi.show();
}
}
答案:
num
this.num
outer.this.num
匿名内部类
- 内部类的简化写法,前提是要存在一个类或者一个接口,因为类没有名字。
interface inter{//创建一个接口
public void print();
}
class Outer {
public void method(){
new Inter(){//创建匿名内部类(要不继承类,要不实现接口)
public void print(){//重写接口inter的print方法
System.out.println("print");
}
}.print();//调用匿名内部类的方法
}
}
class InnerClassTest {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}
转载:https://blog.csdn.net/qq_41816516/article/details/104826565
查看评论