[Java学习]面向对象-package;内部类;UML图表示六种关系

package 软件包

  • 类名前加入命名空间(包),解决命名冲突问题。
  • 定义格式:公司域名倒叙.项目名.模块名;
    package语句写在文件第一行
  • 使用import语句导入package
    java.lang; 软件包下的所有类系统自动导入。
  • 编译
    javac -d 生成路径 java源文件路径
  • 运行
    java 完整类名

内部类

基本

  • 定义:类里面的类。
  • 好处:内部类可以访问其外部类的私有数据。
  • 分为 :静态内部类,成员内部类,局部内部类,匿名内部类

静态内部类

  • 调用静态内部类的静态方法:
    OuterClass.InterClass.methods1();
  • 调用静态内部类的成员方法:
InnerClass inner=new OuterClass.InnerClass();
inner.methods2();

匿名内部类

  • 定义:没有名字的类。
  • 优点:少定义一个类。
  • 缺点:无法重复使用。

未采用匿名内部类代码

package com.test.jinhj;

public class SubClass{

    public static void testM(CustomerService cs) {
        cs.logout();
    }

    public static void main(String[] args) {
        testM(new CustomerService());
    }

}

interface CustomerService{
        //退出系统
    void logout();
}

class CustomerServiceImpl implements CustomerServerce{

    public void logout() {

        System.out.println("退出。");

    }

}

采用匿名内部类代码

package com.test.jinhj;

public class SubClass{

    public static void testM(CustomerService customerService) {

        customerService.logout();

    }

    public static void main(String[] args) {

        //整个"CustomerService(){}"称为匿名内部类

        testM(new CustomerService() {

            public void logout() {

                System.out.println("exit!");

            }

        });

    }

}

interface CustomerService{

    //退出系统

    void logout();

}

UML图

类和类之间的关系:

  • 泛化关系:继承。
  • 实现关系: 类实现接口。
  • 关联关系:在当前类中含有其他类的引用。
    下例中Me和Friend就是关联关系
public class Me{
    String name;

    Friend f;

    Me(Friend f){
        this.f=f;
    }
}

public class Friend{
    String name;
    String addr;

    Friend(String addr){
        this.addr=addr;
    }
}

public class Test{
    public static void main(String[] args){

    Friend f=new Friend("北京");

    //当创建完Me的对象后,关联关系已建立,Me对象m中已有Friend对象f的内存地址。
    Me m=new me(f);

    System.out.println(m.f.addr);

    }
}

原文地址:https://www.cnblogs.com/coding-gaga/p/10467199.html

时间: 2024-08-11 12:38:33

[Java学习]面向对象-package;内部类;UML图表示六种关系的相关文章

Java学习笔记之 内部类

1. 什么是Java中的内部类 内部类(Inner Class)就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. 它的主要作用: a. 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类. b. 内部类的方法可以直接访问外部类的所有数据,包括私有数据. c. 内部类所实现的功能使用外部类同样可以实现.只是有时使用内部类更加方便. d. 内部类可分为:成员内部类,静态内部类,方法内部类,匿名内部类 四种. 简单实例: //外部类HelloWo

JAVA学习面向对象之 扑克牌(初)

感想: 一开始不了解或者说是对JAVA的特性不熟悉,不知道类与类之间的联系,对JAVA的封装,继承,多态不熟悉和没有更好的理解,在以后的学习过程中要掌握并熟悉JAVA的开发习惯, 在写代码过程中还有众多东西没有掌握,靠着老师和同学的帮助完成这次学习,初步了解了JAVA面向对象开发的基本要领.写这个博客以便于自己今后学习,也算是一段美好的回忆吧! 上面是一个类图  表示着写这个程序的只要思路. Card类:他的下级是cardview上级是player,有着一定的关系 package com.cqv

JAVA学习之局部内部类,匿名内部类,静态内部类

分别写了一个匿名内部类和静态内部类的程序,局部内部类感觉就是后两者的一般情况,后两者则是前者的特殊应用. 局部内部类:在一个方法中定义一个类,不可以用public或static进行声明,可以对外部完全隐藏,只有该方法可以调用. 匿名内部类:不用写类的定义头部分,直接写类体,我个人感觉不太好,只有在接口要定义函数时用比较好吧?这种类不能有构造函数,所以它调用超类的构造函数,注意在内部类实现接口时不能有参数. 静态内部类:如果只是单存为了隐藏一个类,而不用内部类去调用外围对象,则可以用这种类,用起来

JAVA学习--面向对象的特征三:多态性

* 面向对象的特征三:多态性  * 1.多态性指的是什么?多态性,可以理解为一个事物的多种表型形态.  *   1)方法的重载与重写  2)子类对象的多态性  *  * 2.子类对象的多态性使用的前提:①要有类的继承②要有子类对父类方法的重写  *  * 3.程序运行分为编译状态和运行状态.  *   对于多态性来说,编译时,"看左边",将此引用变量理解为父类的类型  *   运行时,"看右边",关注于真正对象的实体:子类的对象.那么执行的方法就是子类重写的.  *

JAVA学习--面向对象的特征二:继承性

* 一.面向对象的特征二:继承性 * 1.为什么要设计继承性?  *  * 2.通过"class A extends B"类实现类的继承.  *   子类:A  父类(或基类 SuperClass):B  *     * 3.子类继承父类以后,父类中声明的属性.方法,子类就可以获取到.  *    明确:当父类中有私有的属性或方法时,子类同样可以获取得到,只是由于封装性的设计,使得子类不可以直接  *        调用罢了.  *   子类除了通过继承,获取父类的结构之外,还可以定义

Java学习10——package和import

package和import语句 为了便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间,使用时,import引入相应package包. 使用步骤一: package语句作用于Java源文件的第一条语句,指明该文件中定义的类所在的包.(若缺省该语句,则指定为无名包).如果想将一个类放入包中,在这个类的源文件第一句代码写package语句 格式:package xxx.xxx.xxx[.xxx......] 使用步骤二: Java

Java学习笔记:内部类/匿名内部类的全面介绍

编写java程序时,一般一个类(或者接口)都是放在一个独立的java文件中,并且类名同文件名(如果类是public的,类名必须与文件名一致:非public得,无强制要求).如果想把多个java类放在一个java文件中,则只能有一个public类.如下面的两个类放在同一个文件中就会报错,无法编译通过. 可以看出,因为TestOne.java文件中已经有一个public类TestOne,这时再加了一个public类TestTwo就报错了.如果将类TestTwo前面的public修饰符去掉就没有问题了

JAVA学习--面向对象思想的落地法则

* 面向对象思想的落地法则一:  * 1.设计类,并设计类的成员(成员变量&成员方法)  * 2.通过类,来创建类的对象(也称作类的实例化)  * 3.通过“对象.属性” 或“对象.方法”来调用,完成相应的功能  *  * 二.创建的多个对象,彼此各自拥有一套类的属性.当对其中一个对象的属性进行修改时,  * 不会影响到其他对象的属性值.  *  * 三.类的属性(成员变量)  *   成员变量 vs 局部变量  *   相同点:1.遵循变量声明的格式: 数据类型 变量名 = 初始化值  * 

【java学习】JDK、JRE、JVM的关系

目录结构: contents structure [-] 什么是JDK,JRE,JVM 安装JDK的时候为什么有两个jre 专用JRE 共用JRE 共用JRE和专用JRE的对比 java的跨平台特性 JDK各个文件的作用 参考文章 1,什么是JDK,JRE,JVM. JDK:java development toolskit,包含java开发工具和jre. JRE:java runtime enviroment,包含java运行环境和jvm. JVM:java virtual machine,j