JAVA编程思想学习笔记4-chap10-12-斗之气4段

本文深入探讨Java内部类的特性与应用,包括Iterator、this引用、匿名内部类及工厂模式实现,同时解析内部类与接口结合的优势。此外,文章还讲解了异常处理的基本概念,如Throwable、Error和Exception的区别,以及RuntimeException的使用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.内部类:Iterator

2..this生成对外部类的引用

3..new:通过外部类对象创建内部类对象

package com.chengjie;

public class TestInnerClass {
    class Inner {
        String str() {
            return "Inner!";
        }
    }

    public Inner getInner() {
        return new Inner();
    }

    public static void main(String[] args) {
        TestInnerClass tic = new TestInnerClass();
        TestInnerClass.Inner inner = tic.getInner();
        System.out.println(inner.str());
        inner = tic.new Inner();
        System.out.println(inner.str());
    }
}

4.通过内部类返回其接口类型时,可以实现内部的完全隐藏

interface  Base { }

public class TestInnerClass {
    class Inner implements Base{
        String str() {
            return "Inner!";
        }
    }
    public Base getInner() {
        return new Inner();
    }
}

5.通过匿名内部类实现工厂模式

package com.chengjie;

interface Service {
    void method1();
    void method2();
}

interface ServiceFactory {
    Service getService();
}

class ServiceImpl1 implements Service {
    private ServiceImpl1() {}

    @Override
    public void method1() {
        System.out.println("implment1:method1()!");
    }

    @Override
    public void method2() {
        System.out.println("implment1:method2()!");
    }

    public static ServiceFactory sf = new ServiceFactory() {
        @Override
        public Service getService() {
            return new ServiceImpl1();
        }
    };
}

public class TestFactory {
    public static void consume(ServiceFactory sf) {
        Service s = sf.getService();
        s.method1();
        s.method2();
    }

    public static void main(String[] args) {
        consume(ServiceImpl1.sf);
    }
}

6.内部类特点:每个内部类可以独立继承一个接口的实现,无论外围类继承与否--有效补充了多重继承

7.内部类不是is-a,而是独立的实体

8.嵌套类:静态内部类,切断内外部对象的关系,生成内部类对象不再依赖外部类对象

9.ListIterator应用于List访问,可以双向与定向

10.容器

  • Collection:存1  Map:存二
  • List:顺序  ArrayList:数组实现 LinkedList:链表实现
  • HashMap:快查 TreeMap:排序 LinkedHashMap:插入顺序+快查
  • Comparable接口:需要对容器类存的对象排序时,需要此对象实现Comparable接口
  • 涉及数据结构:数组、链表、红黑树、哈希表

11.异常占位:声明异常却不进行实际抛出异常

12.Throwable:Error和Exception

13.RuntimeException不需要异常声明以及手动捕获

14.子类方法只能抛出基类方法中说明的异常

转载于:https://www.cnblogs.com/forTheDream1991/p/10387760.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值