摘要:
内部类可以是静态(static)的,可以使用 public、protected 和 private 访问控制符,而外部类只能使用 public,或者默认。 成员式内部类 在外部类内部直接定义(不在方法内部或代码块内部)的类就是成员式内部类,它可以直接使用外部类的所有变量和方法,即使是 private 阅读全文
摘要:
在 Java 中,允许在一个类(或方法、语句块)的内部定义另一个类,称为内部类(Inner Class),有时也称为嵌套类(Nested Class)。 内部类和外层封装它的类之间存在逻辑上的所属关系,一般只用在定义它的类或语句块之内,实现一些没有通用意义的功能逻辑,在外部引用它时必须给出完整的名称 阅读全文
摘要:
类与类之间最常见的关系主要有三种:依赖(uses-a)、聚合(has-a)和继承(is-a)。 下面以在线书店订单系统为例,来详细的讲述这三种关系的概念。 在线书店订单系统的主要功能是:注册用户可以登录到网上书店选购图书,在线填写订单,并支付购书款。书店确认已经收到购书款时,按用户留下的地址邮寄图书 阅读全文
摘要:
在 Java 中,声明类、变量和方法时,可使用关键字 final 来修饰。final 所修饰的数据具有“终态”的特征,表示“最终的”意思。具体规定如下: final 修饰的类不能被继承。 final 修饰的方法不能被子类重写。 final 修饰的变量(成员变量或局部变量)即成为常量,只能赋值一次。 阅读全文
摘要:
static 修饰符能够与变量、方法一起使用,表示是“静态”的。 静态变量和静态方法能够通过类名来访问,不需要创建一个类的对象来访问该类的静态成员,所以static修饰的成员又称作类变量和类方法。静态变量与实例变量不同,实例变量总是通过对象来访问,因为它们的值在对象和对象之间有所不同。 请看下面的例 阅读全文
摘要:
这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常。 在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”。 很多时候,我 阅读全文
摘要:
java多态性带来一个问题,就是如何判断一个变量所实际引用对象的类型。这里java帮我们引入了 instanceof 运算符。 instanceof运算符用来判断一个变量的所引用对象的实际类型,注意是它引用的对象类型,不是变了类型。 请看下面的代码: public class People { } 阅读全文
摘要:
在Java中,父类的变量可以引用父类的实例,也可以引用子类的实例。 请读者先看一段代码: public class Demo { public static void main(String[] args){ Animal obj = new Animal(); obj.cry(); obj = n 阅读全文
摘要:
super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。 super也有三种用法: 1.普通的直接引用 与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。 2.子类中的成员变量或方法与父类中的成员变量或方法同名 阅读全文
摘要:
继承时类和类之间的关系,是一个很简单很直观的概念,与显示生活中的继承(例如儿子继承了父亲财产)类似。 继承可以理解为一个类从另一个类中获取方法和属性的过程。如果类B继承于类A,那么类B就拥有类A的属性和方法。 继承使用extends关键字。 例如我们定义了一个People: public class 阅读全文