用static修饰的属性、方法是属于类本身的,可以直接通过类名.属性`或`类名.方法调用。 类属性作为该类各个对象之间共享的变量。 在设计类时, 分析哪些属性不因对象的不同而改变 ,将这些属性设置为类属性。相应的方法设置为类方法。 如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法 ,从而简化了方法的调用。 关于静态方法,有几个注意点: 静态方法体中,不可以使…
抽象类 抽象类不能被实例化,它只能被后代继承。 含抽象方法的类一定是抽象类,但抽象类不一定含抽象方法(虽然这极少见) 继承自抽象类的非抽象类,必须实现父类的全部抽象方法 抽象方法中可以由具体方法以及字段 package com.studyjava.demo; public class Demo3 { public static void main (String[] args) { var stu…
静态与私有方法 目前为止,通常的做法都是将静态方法放在接口伴随类中。如:Collection/Collections、Path/Paths。 在java8中,允许在接口中增加静态方法。那么,如果我们自己现在来定义一个接口类,就可以在接口中定义一些常用的静态方法,而不用在去写一个接口伴随类了。 在java9中,接口中的方法可以是private。private方法可以是静态方法或实例方法。 默认方法 …
现有两个类People以及Student,他们之间是继承关系 class People { private String name; private int age; private String[] parents = new String[2]; public People (String name, int age, String[] parents) { this.name = name;…
Comparable Arrays类中的sort方法,可以对对象数组进行排序,但有个前提条件,该对象需要实现Comparable接口。该接口建议compareTo方法应该和equals方法兼容。也就是说,当x.equals(y)时x.compareTo(y)就应该等于0。 package com.studyjava.demo; import java.util.Objects; class Emp…
对于受检查型异常来说,如果未对其进行异常处理,那么该程序编译不会通过,并在控制台上打印一个消息,其中包括这个异常的类型和一个堆栈轨迹。有时候为了防止程序终止,就需要捕获异常,然后做相应的处理。 异常处理有两种机制:抛出异常以及捕获异常。下文细说如何捕获异常 try catch结构 try catch结构语法如下: try { // 可能发生异常的程序块 } catch (Excetpion1 e)…
异常处理机制除了捕获处理外,还有另一种处理方法——声明异常。 声明异常处理方式,其实就是“不处理”的方式。不去处理异常,只是告诉调用者可能会出现哪些异常,让调用者自己去处理。 在实际开发中,这种“不处理”比捕获用的更多。 声明检查型异常 方法不仅需要告诉编译器将要返回什么值,还要告诉编译器可能出现的错误。下面来看如何声明一个异常: public static Class TestException…