在静态函数里不可以引用非静变量
匿名对象:可以不定义对象的引用名称而直接使用对象的方法
New 类名.方法()
This的用法
This()调用本类的其他构造函数
静态成员变量可
17
1 静态成员变量只有一份
2 在静态函数当中不能使用static
3 静态代码块: 为静态变量赋值
2 在静态函数当中不能使用static
3 静态代码块: 为静态变量赋值
18
java只支持单继承 不允许多继承
19
在子类的构造函数当中为什么要调用父类的构造函数呢?
super() 调用父类的构造函数 语句必须第一条语句
super调用父类的成员函数
this () 调用本类的构造函数
20
函数的覆写
1 在具有父子类的两个类中
2 父类和子类各有一个函数 这两个函数的定义(返回值类型 函数名和参数列表)完全相同
21
什么是向上转型
向上转型----将子类的对象赋值给父类的引用
向上转型----将子类的对象赋值给父类的引用
Student s = new Student()
Person p= s
一个引用(p)能够调用哪些成员 取决于这个 引用的类型
Person p= s
一个引用(p)能够调用哪些成员 取决于这个 引用的类型
一个引用调用哪个方法 取决于这个引用
所指向的对象
向下转型
向下转型
Student s = new Student()
Person p= s;
Person p= s;
Student s2 = (Student)p;
23
抽象函数和抽象类
抽象函数:只有函数定义,没有函数体的函数
abstract void fun();
抽象类 使用abstract定义的类
1 抽象类不能生成对象,可以拥有构造函数(为子类准备)
2 如果一个类中包含有抽象函数,那么这个类必须被声明成抽象类
3 如果一个类当中没有抽象函数,那么这个类也可以被声明为抽象类
抽象类可以有构造函数么
25
将类放置到一个包中,需要使用package “包名”
一个类的全名应该是“包名”+“。”+“类名”
26 java访问权限
public 公共权限 (在跨包访问的时候)
private 私有权限 (只想当前类中使用)
default 包级别访问权限 (不写权限修饰符,在同一包中可以自由访问)
protected 保护权限 权限拥有default一样的功能。 但是该权限只能修饰成员变量和成员函数
27
如果子类和父类不在同一个包当中,则子类无法继承到父类当中的default权限的成员变量和成员函数
(有问题)
如果子类和父类不在同一个包当中,则子类可以继承到父类当中的default权限的成员变量和成员函数,
但是权限不够, 不能够使用
28
接口:现实世界就是标准 在面向对象时间 定义的接口 就等于定义调用对象的标准
接口的语法
1 使用interface定义
2 接口当中的方式都是抽象方法
3 接口当中的方法都是public权限
1 实现接口使用implements关键字
2 一个类可以实现多个接口
3 一个接口可以继承多个接口
30 异常
异常:中断了正常指令流的事件 (运行的时候出现的)
异常的分类
RuntimeException(uncheck Exception
)
exception
。。。。。。。。。。
throwable
error
throw
public void setAge(int age)
{
if(age <0)
{
RuntimeException e = new RuntimeException("年龄不能为负数");
throw e;
}
this.age = age;
}
{
if(age <0)
{
RuntimeException e = new RuntimeException("年龄不能为负数");
throw e;
}
this.age = age;
}
在函数内处理
throws 用来声明异常对象
在调用处理
public void setAge(int age) throws Exception
35
内部类:定义在类里面
匿名内部类
b.fun(new a(){
.......
})