上一篇是分享的是《Java接口》,这篇分享的是《Java类与类之间的关系、Java外部类》。
Java类与类之间的关系
Java实现接口
一个类实现了接口
Java依赖
如果A类的中办法返回值类型,办法参数类型,局部变量类型应用了B类, 称A类依赖B类。
Java关联
在A类中应用B类定义了成员变量, 称A类关联B类。
Java聚合
聚合是关联的一种, 如果A类由若干的B类组成 , A类不能决定B类生命周期,称A类是聚合类。
Java组合
组合是关联的一种, 如果A类由若干的B类组成 , A类能决定B类生命周期,称A类是组合类
is a, A类 is a B类, 是一种继承关系 A类是B类的一种, B类是通用类, A类是非凡类, 也只有当两个类合乎is a 关系时才能够应用继承。
like a, A类 like a 接口, 是一种实现关系。
has a , A类 has a B类, 是一种关联关系。
Java外部类
package com.wkcto.chapter01.innerclass.demo01;/*** 成员外部类* 1) 成员外部类与实例变量/实例办法一样,都是属于某一个Outer对象的* 2) 个别状况下, 在实例办法中应用成员外部类创建对象* 3) 在Java中,所有类编译后都会生成一个独立的字节码文件,* 外部类的字节码文件: 外部类$外部类名.class***/public class Outer {int xx = 10 ; //实例变量public void m1() {System.out.println("实例办法");xx = 123; //在实例办法中,能够间接应用实例变量//个别状况下, 在实例办法中应用成员外部类创建对象Inner1 obj = new Inner1();}//成员外部类class Inner1{}}
package com.wkcto.chapter01.innerclass.demo02;/*** 动态外部类* 1) 应用static润饰的成员 外部类* 2) 动态外部类个别状况下是在静态方法中应用***/public class Outer {static int yy = 20; //动态变量public static void sm() {System.out.println("静态方法");yy = 202 ; //在静态方法中,能够间接应用动态变量//个别状况下是在静态方法中应用动态外部类Inner2 obj = new Inner2();}//动态外部类static class Inner2{}}
package com.wkcto.chapter01.innerclass.demo03;/*** 部分外部类* 1) 在办法体中定义的外部类就是部分外部类* 2) 部分外部类的作用域 , 是从定义外部类的地位开始, 直到蕴含它的大括弧完结**/public class Outer {public void m3() {int zz = 10; //局部变量class Inner3{} //部分外部类}}
package com.wkcto.chapter01.innerclass.demo04;/*** 匿名外部类* 1)匿名外部类,就是没有类名 的外部类,* 2)因为匿名外部类没有类名, 匿名外部类的定义与对象的创立必须在一起* 3)给接口/抽象类的援用赋值时,能够赋值匿名外部类对象, 接口实现类/抽象类的子类只应用一次时, 能够应用匿名外部类* 常常, 如果办法地形参是接口/抽象类的援用,在调用办法时,能够传递匿名外部类对象**/public class Test {public static void main(String[] args) {//接口的援用只能赋值实现类对象, 接口不能实例化对象, 须要先定义一个类, 让它实现接口,再创立实现类对象给接口援用赋值//如果接口的实现类就应用这一次, 当前再也不必了, 就不须要再独自的定义一个实现类了, 能够间接给接口援用赋值匿名外部类对象Flyable flyable = new Flyable() {//在匿名外部类中重写接口的形象办法@Overridepublic void fly() {System.out.println("我是匿名外部类中重写 的航行操作");}};flyable.fly();//抽象类不能实例化对象, 抽象类的援用须要赋值子类对象, 先定义子类继承抽象类, 重写抽象类的形象办法, 再创立子类对象给抽象类援用赋值//当子类就应用这一次时, 能够间接给抽象类援用赋值匿名外部类对象Animal animal = new Animal() {//在匿名外部类中重写抽象类的形象办法@Overridepublic void walk() {System.out.println(" 这是一个神奇的动物, 它没有腿也能走路");}};animal.walk();}}
总结:
记住类与类之间的关系, 能够通过Rose工具画出类与类之间的关系。
理解什么是外部类, 理解外部类有哪些, 把握接口的援用/抽象类的援用能够赋值匿名外部类对象。
- 下面就是《Java类与类之间的关系、Java外部类》,的分享,接下来为大家梳理《Java异样简介与Java异样解决》。
- 也欢送大家交换探讨,该文章若有不正确的中央,心愿大家多多包涵。
- 你们的反对就是我最大的能源,如果对大家有帮忙给个赞哦~~~