随笔分类 -  Java

摘要:接口的应用:工厂模式 工厂模式:实现了创建者与调用者的分离,即将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。 其实设计模式和面向对象设计原则都是为了使得开发项目更加容易扩展和维护,解决方式就是一个"分工"。 社会的发展也是这样,分工越来越细。 原始社会的人:人什么都要会,自己种,自己打猎, 阅读全文
posted @ 2021-03-16 14:10 klvchen 阅读(72) 评论(0) 推荐(0)
摘要:概述: 代理模式是Java开发中使用较多的一种设计模式。代理设计就是为其他对象提供一种代理以控制对这个对象的访问。 应用场景: 安全代理: 屏蔽对真实角色的直接访问。I 远程代理: 通过代理类处理远程方法调用(RMI) 延迟加载: 先加载轻量级的代理对象,真正需要再加载真实对象。比如你要开发一个大文 阅读全文
posted @ 2021-03-15 15:09 klvchen 阅读(155) 评论(0) 推荐(0)
摘要:定义Java类的语法格式: 先写 extends,后写 implements class SubClass extends SuperClass implements InterfaceA 一个类可以实现多个接口,接口也可以继承其它接口。 实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例 阅读全文
posted @ 2021-03-15 14:30 klvchen 阅读(63) 评论(0) 推荐(0)
摘要:一方面,有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java 不支持多重继承。有了接口,就可以得到多重继承的效果 另一方面,有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有is-a的关系,仅仅是具有相同的行为特征而已。例如:鼠标、键盘、打印机、扫描仪、摄像头、充电器 阅读全文
posted @ 2021-03-13 18:51 klvchen 阅读(53) 评论(0) 推荐(0)
摘要:编写工资系统,实现不同类型员工(多态)的按月发放工资。如果当月出现某个Employee对象的生日,则将该雇员的工资增加100元。 实验说明: (1) 定义一个Employee类,该类包含: private 成员变量 name,number,birthday,其中 birthday 为 MyDate 阅读全文
posted @ 2021-03-12 16:05 klvchen 阅读(192) 评论(0) 推荐(0)
摘要:抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。 解决的问题: 当功能内部一部分实现是确定的,一部分实现是不确定的。这时可以把不确定的部分暴露出去,让子类去实现。 换句话说,在软件开发中实现一个算法时,整体步骤 阅读全文
posted @ 2021-03-12 15:18 klvchen 阅读(100) 评论(0) 推荐(0)
摘要:AbstractTest.java package com.klvchen.java; public class AbstractTest { public static void main(String[] args) { //一旦 Person 类抽象了,就不可以实例化 // Person p1 阅读全文
posted @ 2021-03-12 14:03 klvchen 阅读(280) 评论(0) 推荐(0)
摘要:编写一个Employee类,声明为抽象类,包含如下三个属性:name,id,salary。 提供必要的构造器和抽象方法:work()。 对于Manager类来说,他既是员工,还具有奖金(bonus)的属性。 请使用继承的思想,设计CommonEmployee类和Manager类,要求类中提供必要的方 阅读全文
posted @ 2021-03-11 15:31 klvchen 阅读(195) 评论(0) 推荐(0)
摘要:final:最终的 final 可以用来修饰的结构: 类、方法、变量 final 用来修饰一个类: 此类不能被其他类所继承。 比如: String类、System类、StringBuffer类 final 用来修饰方法。表明此方法不可以被重写 比如:Object 类中 getclass(); fin 阅读全文
posted @ 2021-03-11 14:44 klvchen 阅读(48) 评论(0) 推荐(0)
摘要:随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类, abstract 关键字的使用 abstract: 抽象的 abstract 可以用来修饰的结构:类、方法 阅读全文
posted @ 2021-03-11 14:42 klvchen 阅读(88) 评论(0) 推荐(0)
摘要:LeafTest.java package com.klvchen.java3; class Root{ static { System.out.println("Root的静态初始化块"); } { System.out.println("Root的普通初始化块"); } public Root( 阅读全文
posted @ 2021-03-09 15:31 klvchen 阅读(131) 评论(0) 推荐(0)
摘要:类的成员之四: 代码块(或初始化块) 1.代码块的作用:用来初始化类、对象 2.代面树如果有修饰的话,只能使用 static. 3. 分类:静态代码块 VS 非静态代码块 静态代码块 内部可以有输出语句 随着类的加载而执行,而且只执行一次 作用: 初始化类的信息 如果一个类中定义了多个静态代码块,则 阅读全文
posted @ 2021-03-09 15:24 klvchen 阅读(68) 评论(0) 推荐(0)
摘要:main()方法的使用说明 main()方法作为程序的入口 main()方法也是一个普通的静态方法 main()方法可以作为我们与控制台交互的方式。(之前:使用Scanner) MainTest.java package com.klvchen.java2; public class MainTes 阅读全文
posted @ 2021-03-05 15:29 klvchen 阅读(364) 评论(0) 推荐(0)
摘要:设计模式 是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。”套路” 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得 阅读全文
posted @ 2021-03-05 14:45 klvchen 阅读(86) 评论(0) 推荐(0)
摘要:数组排序 ArrayUtil.java package com.klvchen.java1; public class ArrayUtil { //求数组的最大值 public static int getMax(int[] arr) { int maxValue = arr[0]; for (in 阅读全文
posted @ 2021-03-04 17:11 klvchen 阅读(174) 评论(0) 推荐(0)
摘要:当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用。我们有时候希望无论是否产生了对象或无论产生了多少对象的情况下,某些特定的数据在内存空间里只有一份,例如所有的中国人都有个国家名称 阅读全文
posted @ 2021-03-04 14:11 klvchen 阅读(86) 评论(0) 推荐(0)
摘要:练习一 InterviewTest.java package com.klvchen.java2; import org.junit.jupiter.api.Test; public class InterviewTest { @Test public void test1() { Object o 阅读全文
posted @ 2021-03-01 14:45 klvchen 阅读(100) 评论(0) 推荐(0)
摘要:针对八种基本数据类型定义相应的引用类型--包装类(封装类) 有了类的特点,就可以调用类中的方法,Java才是真正的面向对象 | 基本数据类型 | 包装类 | | | | | byte | Byte | | short | Short | | int | Integer | | long | Long 阅读全文
posted @ 2021-02-27 15:27 klvchen 阅读(620) 评论(0) 推荐(0)
摘要:例子一 GeometricObject.java package com.klvchen.exer3; public class GeometricObject { protected String color; protected double weight; public GeometricOb 阅读全文
posted @ 2021-02-26 15:29 klvchen 阅读(90) 评论(0) 推荐(0)
摘要:例子一 package com.klvchen.exer2; public class OrderTest { public static void main(String[] args) { Order order1 = new Order(1001, "AA"); Order order2 = 阅读全文
posted @ 2021-02-26 14:19 klvchen 阅读(128) 评论(0) 推荐(0)