Java学习第七章重点

本章主要内容:

~ 内部类 ————基础
~ 匿名类 ————重点
~ 异常类 ————难点
~ 断言

7.1 内部类

~ Java支持在一个类中定义另一个类,这样的类称作内部类,而包含内部类的类成为内部类的外嵌类。
~ 外嵌类可以调用内部类,其他类不能调用除自己以外的其他内部类。
~ 如果内部类用static修饰,就可以在其他类调用,但是需要注意,static内部类不能操作外嵌类中的实例变量。
举例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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 重 点:匿名类

  1. 和子类有关的匿名类
    假如没有显示地定义一个类的子类,而又想用子类创建一个对象,那么就需要用匿名类来实现。
    匿名类一定是内部类。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    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!");
    }
    });
    }
    }
  2. 和接口有关的匿名类
    假如没有显示地定义一个实现接口类,而又想实现该接口的类创建一个对象,那么就可以使用匿名类来实现。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    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 难 点:异常类

所谓异常就是程序运行时可能出现的一些错误,比如试图打开一个根本不存在的文件等,异常处理将会改变程序的控制流程,让程序有机会对错误做出处理。

  1. try-catch语句(有点类似于if-else)
    异常通常指行为发生异常,就是方法调用。
坚持原创技术分享,您的支持也将成为我的动力!
-------------本文结束感谢您的阅读-------------
undefined