Java学习笔记(八) - 继承

一、概念 一个类派生字另一个类被称为子类,派生的类称为超类,也称为基础类或父类。在Java中,Object是最高等级的类,所有类都是它的子类,除了Object类没有父类,每个类都有一个且仅有一个直接的父类,Java仅支持单继承,在没有任何显式的超类的情况下,每个类都是Object的隐式的子类。子类继承父类的索引成员(字段,方法和嵌套类等),构造方法不是成员,因此没有被子类继承,但是父类的构造方法能够在子类中调用,通过super关键词。 下面声明一个Bicycle的类 public class Bicycle { / the Bicycle class has three fields public int cadence; public int gear; public int speed; / the Bicycle... »

Java学习笔记(七) - 接口

一. 接口 1. 概念 广义上的接口指的是一种标准,一种约定,只要遵守这个约定,大家就可以协作实现特定的功能。比如非常流行的USB接口,几乎所有电脑厂商都使用了这个标准,U盘厂商只要按着这个标准做,就可以和电脑实现数据传输,同理,鼠标厂商只要实现了USB接口,鼠标就可以连接到电脑。   Java的接口的概念也类似,首先声明一个接口,使用Interface关键词,在接口{}体内可以声明抽象的方法,接着任何类都可以通过implements实现它,前提是这个类必须实现接口内定义的方法。 2. 定义接口 一个接口的声明由修饰符,interface关键词,接口名称,父级接口(用逗号分隔),大括号{}。例如: public interface GroupedInterface extends Interface1, Interface2, Interface3 { / constant declarations / base of natural logarithms double... »

Java学习笔记(六) - 注解

一、概念 注解是一种形式的元数据,为程序本身提供额外的数据,注解本身对程序没有直接影响,越来越多的框架使用了注解,如Spring Boot,使用@Autowired注解,结合反射机制实现依赖注入,还有基于注解自动载入XML配置。注解有很多用途,包括以下: 为编译器提供信息 —— 编译器可以根据注解检测出错误或抑制某些警告。 编译时和部署时处理 —— 一些软件工具可根据注解提供的信息生成相关代码,XML文件等等。 运行时处理 —— Spring Boot框架通过@Autowired注解提供的信息,再通过反射实现依赖注入 。 二、注解基础 注解通过@符号告诉编译器这是一个注解,最常见的注解是@Override(重写注解),它一般应用在子类的方法声明上,用来告诉编译器这是一个重写方法,如果在父类中没有声明与之相同的方法,则无法通过编译。虽然在重写方法时不使用@Override注解仍然可以达到重写的效果,但是使用了该注解可以避免一些不必要的错误,且在编译时就可以检测出来。 @Override void mySuperMethod() { ... } 注解可以包含一些参数,如下的@Author注解,可自定义name和date参数,当注解中只有一个参数时,可以省略参数名称。 @Author( name =... »

Java学习笔记(五) - 访问控制

访问级别修饰符 一个类的成员变量或方法是否能被其它类访问到取决于访问级别的修饰符,Java有四种级别的访问修饰符,分别是public,protected,package-private(没有修饰符),private,访问级别逐级降低。 下表表示每个修饰符的访问权限。 Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N protected Y... 720-390-3683

716-435-7069

声明类 Java的类可以通过class关键词,{}大括号来声明,在{}大括号中间是类的body体,在body体内可声明成员变量、方法和构造函数等等。另外,也可以在class前面加上修饰符private或public,修饰符的作用是访问控制,前者说明该类是私有类,其它类不能访问它,后者是公开的,任何类都可以访问它,下面是公开类的声明示例。 public class Myclass { / 这里可以声明成员变量 / 方法、构造函数等 } 上面是一个简单类的声明,类还可通过关键词extends继承其它类,通过关键词implements继承多个接口,例如: class MyClass extends MySuperClass implements YourInterface,YourInterface2 { / field, constructor, and / method declarations... »