面向对象高级部分
文章平均质量分 79
深入了解面向对象
丿Mars灬龙族-
安静地做 成功了说
展开
-
泛型深入
什么是泛型?为什么要使用泛型?泛型,即“参数化类型”。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。原创 2023-07-03 16:18:32 · 44 阅读 · 0 评论 -
枚举
没有枚举类时定义常量使用enum关键字定义枚举类enum Day {在定义枚举类型时我们使用的关键字是enum,与class关键字类似,只不过前者是定义枚举类型,后者是定义类类型。枚举类型Day中分别定义了从周一到周日的值,这里要注意,值一般是大写的字母,多个值之间以逗号分隔。原创 2023-07-03 15:54:21 · 36 阅读 · 0 评论 -
内部类
将一个类A定义在另一个类B里面,里面的哪个类A就称为内部类,B则称为外部类。可以把内部类理解成寄生,外部类理解成宿主。匿名内部类:是内部类的简化写法。他是一个隐含了名字的内部类。开发中,最常用到的内部类就是匿名内部类了。原创 2023-07-03 15:38:09 · 32 阅读 · 0 评论 -
接口
我们已经学完了抽象类,抽象类中可以用抽象方法,也可以有普通方法,构造方法,成员变量等。那么什么是接口呢?接口是更加彻底的抽象,JDK7之前,包括JDK7,接口中全部是抽象方法。接口同样是不能创建对象的。//接口的定义格式: interface 接口名称 {// 抽象方法 } // 接口的声明:interface // 接口名称:首字母大写,满足“驼峰模式”类与接口的关系为实现关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同,实现使用。原创 2023-07-03 15:14:35 · 33 阅读 · 0 评论 -
抽象类
父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道子类应该有哪个功能,但是功能具体怎么实现父类是不清楚的(由子类自己决定),父类只需要提供一个没有方法体的定义即可,具体实现交给子类自己去实现。**我们把没有方法体的方法称为抽象方法。Java语法规定,包含抽象方法的类就是抽象类。抽象方法:没有方法体的方法。抽象类:包含抽象方法的类。原创 2023-07-03 15:04:45 · 24 阅读 · 0 评论 -
final
学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。如果有一个方法我不想别人去改写里面内容,该怎么办呢?Java提供了final关键字,表示修饰的内容不可变。final:不可改变,最终的含义。可用于修饰类、方法和变量。类“被修饰的类,不能被继承。方法:被修饰的方法,不能被重写。变量:被修饰的变量,有且仅能被赋值一次。原创 2023-07-03 14:49:26 · 51 阅读 · 0 评论 -
多态
多态:是指同一行为,具有多个不同表现形式。从上面案例可以看出,Cat和Dog都是动物,都是吃这一行为,但是出现的效果(表现形式)是不一样的。前提【重点】有继承或实现关系方法的重写【意义体现:不重写,无意义】父类引用指向子类对象【格式体现】父类类型:指子类对象继承的父类类型,或者实现的接口类型。原创 2023-07-03 13:33:16 · 73 阅读 · 0 评论 -
继承
假如我们要定义如下类:学生类,老师类和工人类,分析如下。学生类属性:姓名,年龄行为:吃饭,睡觉老师类属性:姓名,年龄,薪水行为:吃饭,睡觉,教书班主任属性:姓名,年龄,薪水行为:吃饭,睡觉,管理如果我们定义了这三个类去开发一个系统,那么这三个类中就存在大量重复的信息(属性:姓名,年龄。行为:吃饭,睡觉)。这样就导致了相同代码大量重复,代码显得很臃肿和冗余,那么如何解决呢?原创 2023-07-03 11:49:12 · 41 阅读 · 0 评论 -
代码块
当拥有多个成员代码块时 从上到下依次执行。当存在多个静态代码块时 从上到下依次执行。静态代码块 用于对静态变量执行初始化操作。创建几个对象 执行几次 成员代码块。先执行代码块 再执行 构造器。在类的内部 方法的外部。可以给成员变量进行赋值。原创 2023-07-02 14:04:32 · 41 阅读 · 1 评论 -
静态关键字static
/ 成员变量 public String name;// '男' '女' public int age;// 无参数构造方法 public Student() {} // 有参数构造方法 public Student(String a) {} }我们已经知道面向对象中,存在类和对象的概念,我们在类中定义了一些成员变量,例如name,age,sex ,结果发现这些成员变量,每个对象都存在(因为每个对象都可以访问)。原创 2023-07-02 13:55:30 · 36 阅读 · 1 评论