包,修饰符,内部类,匿名内部类
2016-07-20 16:15
337 查看
1.形式参数和返回值的问题
(1)形式参数
类名:该类的对象
接口类名:该接口的实现类对象
抽象类名:需要该类的子类对象
(2)返回值类型
类名:返回该类的对象
接口类名:返回该接口的实现类对象
抽象类名:返回的是该类的子类对象
(3)链式编程
对象.方法1().方法2().方法3();
这种方法,其实在方法1,2调用完后返回一个对象。
2.包
(1)文件夹
(2)作用:
A:区分同名的类
B:对类进行分类管理
a:按照功能分
b:按照模块分
(3)包的定义
package 包名;多级用 . 分隔开
(4)注意事项
A:package语句必须在文件的第一条有效语句
B:在一个java文件中,只能有一个package
C:如果没有包名,默认就是无包名
(5)带包的编译和运行
A:手动式
B:自动式
javac -d . HellodWord.java
3.导包
(1)格式:import 包名...类名;
(2)package,import,class顺序
package 》 import 》 class
4.权限修饰符
本类
同一个包下 不同包下的子类 不同包下的无关类
private Y
默认 Y Y
protected Y Y Y
public Y Y Y Y
注意:这四种权限修饰符在任一时刻只能出现一种
5.常见的权限修饰符
(1)分类
权限修饰符:private,默认,protected,public
状态修饰符:static,final
抽象修饰符:abstract
(2)public static final int x = 10;
6.内部类
(1)把类定义为另一个类的内部,该类就被称作内部类。
(2)内部类的访问规则:
A:可以直接访问外部类的成员。包括私有
B:外部类想要访问内部类,必须创建内部类对象
(3)内部类分类
A:成员内部类
B:局部方法类
(4)成员内部类
成员内部类不是静态的:
外部类名.内部类名 对象名 = new 外部类名.new 内部类名();
成员内部类是静态的:
外部类名.内部类名 对象名 = new 外部类名.内部类名();
(5)局部内部类
A:局部内部类访问局部变量,必须用final修饰
因为局部变量使用完就消失了,而堆内存的数据不会立即消失
所以,堆内存还用该变量,而改变量已经没有了,为了让该值
还存在,就用final 修饰。
(6)匿名内部类
A:是局部内部类的简化形式
B:前提:存在一个类或者接口
C:格式:
new 类名或者接口名(){
重写方法;
}
D:本质:
其实是继承该类或者实现接口的子类匿名对象
(7)匿名内部类在开发中的使用
我们在开发时,会看到抽象类或者接口作为参数,但是,我们知道
诗句需要的是一个子类对象,如果该方法仅仅调用一次,我们就可
以使用匿名内部类的格式简化。
(8)匿名内部类的一个面试题(补全代码)
interface Inter{
void show();
}
class Outer{
(补全代码)
public static Inter mathod(){
return new Inter(){
public void show()
{
System.out.println("好好学习,天天向上");
}
};
}
}
class OutDemo{
public static void main(String[] args)
{
Outer.method().show();
}
}
(1)形式参数
类名:该类的对象
接口类名:该接口的实现类对象
抽象类名:需要该类的子类对象
(2)返回值类型
类名:返回该类的对象
接口类名:返回该接口的实现类对象
抽象类名:返回的是该类的子类对象
(3)链式编程
对象.方法1().方法2().方法3();
这种方法,其实在方法1,2调用完后返回一个对象。
2.包
(1)文件夹
(2)作用:
A:区分同名的类
B:对类进行分类管理
a:按照功能分
b:按照模块分
(3)包的定义
package 包名;多级用 . 分隔开
(4)注意事项
A:package语句必须在文件的第一条有效语句
B:在一个java文件中,只能有一个package
C:如果没有包名,默认就是无包名
(5)带包的编译和运行
A:手动式
B:自动式
javac -d . HellodWord.java
3.导包
(1)格式:import 包名...类名;
(2)package,import,class顺序
package 》 import 》 class
4.权限修饰符
本类
同一个包下 不同包下的子类 不同包下的无关类
private Y
默认 Y Y
protected Y Y Y
public Y Y Y Y
注意:这四种权限修饰符在任一时刻只能出现一种
5.常见的权限修饰符
(1)分类
权限修饰符:private,默认,protected,public
状态修饰符:static,final
抽象修饰符:abstract
(2)public static final int x = 10;
6.内部类
(1)把类定义为另一个类的内部,该类就被称作内部类。
(2)内部类的访问规则:
A:可以直接访问外部类的成员。包括私有
B:外部类想要访问内部类,必须创建内部类对象
(3)内部类分类
A:成员内部类
B:局部方法类
(4)成员内部类
成员内部类不是静态的:
外部类名.内部类名 对象名 = new 外部类名.new 内部类名();
成员内部类是静态的:
外部类名.内部类名 对象名 = new 外部类名.内部类名();
(5)局部内部类
A:局部内部类访问局部变量,必须用final修饰
因为局部变量使用完就消失了,而堆内存的数据不会立即消失
所以,堆内存还用该变量,而改变量已经没有了,为了让该值
还存在,就用final 修饰。
(6)匿名内部类
A:是局部内部类的简化形式
B:前提:存在一个类或者接口
C:格式:
new 类名或者接口名(){
重写方法;
}
D:本质:
其实是继承该类或者实现接口的子类匿名对象
(7)匿名内部类在开发中的使用
我们在开发时,会看到抽象类或者接口作为参数,但是,我们知道
诗句需要的是一个子类对象,如果该方法仅仅调用一次,我们就可
以使用匿名内部类的格式简化。
(8)匿名内部类的一个面试题(补全代码)
interface Inter{
void show();
}
class Outer{
(补全代码)
public static Inter mathod(){
return new Inter(){
public void show()
{
System.out.println("好好学习,天天向上");
}
};
}
}
class OutDemo{
public static void main(String[] args)
{
Outer.method().show();
}
}
相关文章推荐
- Lua模块与包学习笔记
- 解析Lua中的全局环境、包、模块组织结构
- 详解Node.js包的工程目录与NPM包管理器的使用
- 简单总结C++中的修饰符类型
- 深入解读Java代码组织中的package包结构
- android中写一个内部类来选择文件夹中指定的图片类型实例说明
- 基于java内部类作用的深入分析
- java匿名内部类实例简析
- Node.js的包详细介绍
- 深入解析Java中的内部类
- C#语言中的修饰符汇总
- Lua中的模块(module)和包(package)详解
- Lua教程(十一):模块与包详解
- go语言里包的用法实例
- 解析Node.js基于模块和包的代码部署方式
- android private libraries 中的包源代码添加方法
- Android中的广播、服务、数据库、通知、包等术语的原理和介绍(图解)
- Python程序设计入门(4)模块和包
- asp.net 修饰符介绍(关于public、private、protected、internal)
- 对Java的面对对象编程中对象和引用以及内部类的理解