类和接口的嵌套(二) -- 非静态嵌套类

类和接口的嵌套(二)-- 非静态嵌套类一、非静态嵌套类的特点1. 实例化内部类必须先实例化一个外部类。2. 内部类实例与外部类实例相关联,所以不能在内部类中定义任何静态成员。3. 内部类是非静态的。二、成员内部类概念:在外部类中并且在外部类的方法外创建的非静态嵌套类代码示例class Animal{ class Dog{ } }总结:成员内部类就是外部类的一个非静态成员而已。 成员内部类代码:public class Animal2 { private String typeDog = "中华田园犬"; //外部类成员方法 pu...

Java 2019-10-25 PM 1839℃ 0条

类和接口的嵌套(一)

类和接口的嵌套(一)前言当学习了类和接口之后,不禁有一个疑问,它们之间是否能进行嵌套,如果能,它们之间又是如何进行嵌套的?类和接口的嵌套方式类:class接口:Interface方式1:类嵌套类方式2:类嵌套接口方式3:接口嵌套类方式4:接口嵌套接口一、类嵌套类背景:大自然中动物多种多样,有猫、狗、狮子、大象,对于同一种动物,又可以分为不同的品种代码class Animal{ class Dog{ } static class Cat{ } }1.嵌套类的概念在Java语言中允许在一个类中在定义一个类,这样的类被称为嵌套类,其中包含嵌套类的类被称为外部类或...

Java 2019-10-24 PM 2085℃ 0条

再论适配器设计模式

再论适配器设计模式前言在《Java编程思想》这本书中对适配器设计模式讲解的不是太清晰,于是乎小编就在网上搜了一些大佬的资料,然后进行了一些整理,希望对大家有所帮助。一、适配器设计模式概念1. 适配器模式的定义​ 将一个类的接口转成客户期望的另一个接口。 适配器模式使得原本由于接口不匹配而不能一起工作的那些类可以一起工作 。2. 适配器模式结构图 图1. 适配模式结构图 来源网络 Adeptee:服务端写的接口Target:客户端所要期待访问的接口我们总不能...

Java 2019-10-23 AM 1873℃ 0条

多表查询

多表查询一、合并结果集1.要求被合并的表中,列的类型和列数相同2.UNION,去除重复行3.UNION ALL,不去除重复行例如:SELECT * FROM cd UNION ALL SELECT * FROM ab;二、连接查询分类内连接外连接左外连接右外连接全外连接(MySQL不支持)自然连接(属于一种简化方式)内连接方言:SELECT * FROM 表1 别名1,表2 别名2 WHERE 别名 1.xx = 别名2.xx标准:SELECT * FROM 表1 别名1 INNER JOIN 表2 别名2 ON 别名1.xx = 别名2.xx自然:SELECT * FROM 表1 别名...

其它 2019-10-22 PM 1885℃ 0条

接口相关练习题

接口相关练习题前言本篇将根据《Java编程思想》带着大家做一下本章几个相关的练习题一、概念《Java编程思想》中接口的几个概念总结:1.接口没有任何具体的实现,因此多个接口可以进行组合。2.如果从一个非接口的类继承,那么只能从一个类去继承。其余的基元素都必须是接口。3.将所有的接口名都置于implements关键字之后,用逗号将他们一一隔开。4.可以任意继承多个接口,并可以向上转型为每个接口。5.可以扩展接口,但是得到的只是另一个接口。6.当想要创建对象时,所有定义首先必须都存在。7.可以通过继承来扩展接口,使用extends关键字来实现多个继承,用逗号将接口名进行分隔开。二、练习题题目...

Java 2019-10-21 AM 2545℃ 0条

接口中的适配器设计模式(二)

二、适配器设计模式前言通过上一篇文章中,可以实现在Filter类中使用Apply.process()方法,但是这样造成的后果也是巨大的,因为在平时写代码时Processor是不可改写的,那么怎么能不再改写代码的前提下又能实现Filter类对Apply.process()方法的复用呢?下面我们对以下代码做一个分析代码:FilterProcessor.javaclass FilterAdapter implements Processor{ Filter filter; public FilterAdapter(Filter filter){ this.fi...

Java 2019-10-20 AM 3610℃ 1条

接口中的适配器设计模式(一)

接口中的适配器设计模式前言在上一篇文章中提到了解耦,但是并没有做深入的探讨,今天在本篇文章中对解耦做进一步的探讨......一、代码比较我们看上一篇中的代码:class Processor { /** * 返回类名 * @return 类名 */ public String name() { return getClass().getSimpleName(); } /** * 返回object对象 * @param input 传入object对象 * @return 返回obj...

Java 2019-10-19 PM 2025℃ 0条

接口中的策略设计模式

接口中的策略设计模式前言只要一个方法操作的是类而非接口,那么你就只能使用这个类及其子类。如果你想要将这个方法应用于不在此继承结构中的某个类,那么你就会触霉头了。通过上面文字我们可以很清楚的知道,类与类之间的耦合度太高导致我们在进行类的相互调用时,产生许多不便之处。那么下一步我们需要做什么呐?答案是:解耦代码示例class Processor { /** * 返回类名 * @return 类名 */ public String name() { return getClass().getSimpleName(); } ...

Java 2019-10-18 AM 1943℃ 0条

抽象类和抽象方法练习

抽象类和抽象方法练习前言本章小编将带着大家学习《Java编程思想》第九章:接口,书中第一节从抽象类和抽象方法入手,概念都简单易懂,没什么可讲的了,下面小编就带着大家看几道本节的几个课后练习。练习1题目:创建一个基类,让它包含抽象方法print(),并在导出类中覆盖该方法。覆盖后的方法版本可以打印导出类中定义的某个整型变量的值。在定义该变量之处,赋予它非零值。在基类的构造器中调用这个方法。现在,在main()方法中,创建一个导出类对象,然后调用它的print()方法。请解释发生的情形。代码实现:package ThinkInJava; public class AbstractTest0...

Java 2019-10-17 AM 1906℃ 0条

JVM学习二 -- Java程序对类的使用方式

Java程序对类的使用方式前言Java程序对类的使用方式可分为两种1.主动使用2.被动使用所有的Java虚拟机实现必须在每个类或接口被Java程序"首次主动使用"时才初始化他们一、主动使用(七种)1.创建类的实例(new出来一个class对象)2.访问某个类或接口的静态变量,或者对该静态变量赋值(对静态变量赋值和对静态变量取值)3.调用类的静态方法4.反射(如Class.forName("com.test.Test"))5.初始化一个类的子类class Parent{ } class Child extends Parent{ }当初始化child子类的时候,也是对Parent父类的主动...

Java 2019-10-16 PM 1922℃ 0条