Java学习第七章重点
本章主要内容:
~ 内部类 ————基础
~ 匿名类 ————重点
~ 异常类 ————难点
~ 断言
7.1 内部类
~ Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。
~ 外嵌类可以调用内部类,其他类不能调用除自己以外的其他内部类。
~ 如果内部类用static修饰,就可以在其他类调用,但是需要注意,static内部类不能操作外嵌类中的实例变量。
举例:
package 第七章;
public class Example_7_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
RedCowForm form=new RedCowForm("红牛农场");
form.showCowMess();
RedCowForm.RedCow a=new RedCowForm.RedCow(12,12,12);//调用static修饰的内部类
a.speak();
}
}
class RedCowForm
{
String formName;
static class RedCow//静态内部类
{
String cowName = "红牛";
RedCow cow;
int hight,price,weight;
RedCow(int hight,int price,int weight)//构造方法
{
this.hight=hight;
this.price=price;
this.weight=weight;
}
void speak()
{
System.out.println(hight+" "+price+" "+weight);
}
}
RedCowForm(String s)//构造方法
{
cow=new RedCow(150,120,500);//创建内部类的对象
formName=s;
}
void showCowMess()
{
cow.speak();//内部类调用
}
}
7.2 重 点:匿名类
- 和子类有关的匿名类
假如没有显示地定义一个类的子类,而又想用子类创建一个对象,那么就需要用匿名类来实现。
匿名类一定是内部类。
package 第七章;
abstract class Standard
{
abstract void putout();
}
class Speak
{
void speak(Standard stand)//参数stand是Standard类型的对象
{
stand.putout();
}
}
public class Example_7_2 {
public static void main(String[] args) {
Speak say=new Speak();
say.speak(new Standard(){//创建匿名类,并重写方法
void putout(){
System.out.println("I love Java!");
}
});
}
}
- 和接口有关的匿名类
假如没有显示地定义一个实现接口类,而又想实现该接口的类创建一个对象,那么就可以使用匿名类来实现。
interface SpeakHello
{
void speak();
}
class ChineseSpeak
{
void putout(SpeakHello hello)
{
hello.speak();
}
}
public class Example_7_2_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ChineseSpeak say=new ChineseSpeak();
say.putout(new SpeakHello(){
public void speak()
{
System.out.println("你好,很高兴认识你!");
}
});
}
}
7.3 难 点:异常类
所谓异常就是程序运行时可能出现的一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误做出处理。
- try-catch语句(有点类似于if-else)
异常通常指行为发生异常,就是方法调用。
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Hao.Jia's Blog!
喜欢就支持一下吧