------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
(重点) 形式参数和返回值问题
形式参数:
基本类型:
引用类型:
具体类 : 参数列表中要接收的是,具体类的实例对象
抽象类 : 参数列表中要接收的是,继承抽象类的子类的实例对象
接口 : 参数列表中要接收的是,实现接口的类的实例对象
返回值:
基本类型:
引用类型:
具体类 : 返回结果是,具体类的实例对象
抽象类 :返回结果是,继承抽象类的子类的实例对象
接口 :返回结果是,实现接口的类的实例对象
(了解)链式编程
new Outer().method().show();
每一次方法调用完毕后,都会返回一个对象,
用返回的对象继续调用方法,再返回对象,再调用方法....
(了解)包(package):
包 可以理解为 就是文件夹
包 是用来存储多个.class类的
包 对类进行分类管理
包的格式:
package 包名;
多级包之间,使用.分隔
包的划分:
举例:
学生的增加,删除,修改,查询
老师的增加,删除,修改,查询
以及以后可能出现的其他的类的增加,删除,修改,查询
基本的划分:按照模块和功能分。
高级的划分:就业班做项目的时候你就能看到了。
按照模块:
cn.itcast.teacher
AddTeacher
DeleteTeacher
UpdateTeacher
FindTeacher
cn.itcast.student
AddStudent
DeletetStudent
UpdateStudent
FindStudent
按照功能:
cn.itcast.add
AddTeacher
AddStudent
cn.itcast.delete
DeleteTeacher
DeletetStudent
cn.itcast.update
UpdateTeacher
UpdateStudent
cn.itcast.find
FindTeacher
FindStudent
-----------------------------------
注意事项:
package语句必须是程序的第一条可执行的代码
package语句在一个java文件中只能有一个
如果没有package,默认表示无包名
带有包的Java程序如何编译运行:
1:手动
a: 编译java文件,产生class文件
b: 创建包所对应的多层文件夹,把class文件放到最低层文件夹中
c: 运行 java 包名.类名方式访问
2: 自动创建包
a: 编译java文件,产生对应的包,把class文件放入包的最底层
javac -d . 文件名.java
b: 运行 java 包名.类名方式访问
(了解)同包下类之间的访问:
导包格式
import 包名.类名;
import 包名.*;//不建议
注意:
这种方式导入是到类的名称。
package,import,class有没有顺序关系(面试题)
package --> import --> class
在一个java文件中,只能有一个package
可以有多个import
可以有多个class,通常一个java文件中对应一个类
(了解)四种权限修饰符:
当前类中 同一个包下(子类和其他类) 不同包下的子类 在不同包下的其他类
private Y
默认 Y Y
protected Y Y Y
public Y Y Y Y
(了解)类及其组成可以用的修饰符:
权限修饰符: private 默认 protected public
状态修饰符: static final
抽象抽象符: abstract
类:
权限修饰符: 默认 public
状态修饰符: final
抽象抽象符: abstract
最常用的就是 public
成员变量:
权限修饰符: private 默认 protected public
状态修饰符: static final
最常用的就是 private
构造方法:
权限修饰符: private 默认 protected public
最常用的就是 public
成员方法:
权限修饰符: private 默认 protected public
状态修饰符: static final
抽象抽象符: abstract
最常用的就是 public
(了解\理解)内部类:
把类定义在其他类的内部,这个类就被称为内部类。
class Outer{
class Inner{}//内部类
}
(面试题)内部类的访问特点:
内部类可以直接访问外部类的成员,包括私有。
外部类要访问内部类的成员,必须创建对象。
内部类的分类:
成员内部类: 类中方法外
局部内部类: 方法内
成员内部类的使用
格式:
外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
成员内部类的修饰符:
private: 提高安全性
static : 方便内部类的访问
(面试题)局部内部类访问局部变量
必须被final修饰?
为什么呢?
因为局部变量会随着方法的调用完毕而消失,
这个时候,局部对象并没有立马从堆内存中消失,还要使用那个变量。
为了让数据还能继续被使用,就用fianl修饰,
这样,在堆内存里面存储的其实是一个常量值。
通过反编译工具可以看一下
(了解\理解)
匿名内部类,就是没有名字的内部类,它是内部类的简化写法。
前提:存在一个类或者接口
这里的类可以是具体类也可以是抽象类。
格式:
new 类名或者接口名() {
重写方法;
};
本质:
是一个继承了类或者实现了接口的子类匿名对象
匿名内部类:
理解为继承了一个类或者是实现了一个接口的子类,
并且完成了子类对象的创建,
同时子类对象没有名字