static关键字及单例模式

用static修饰的属性、方法是属于类本身的,可以直接通过类名.属性`或`类名.方法调用。 类属性作为该类各个对象之间共享的变量。 在设计类时, 分析哪些属性不因对象的不同而改变 ,将这些属性设置为类属性。相应的方法设置为类方法。 如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法 ,从而简化了方法的调用。 关于静态方法,有几个注意点: 静态方法体中,不可以使…

代码块

代码块(或初始化块)是用来对Java类或对象进行一些初始化操作的。 class Order { String ordernum = null; { double n = Math.random() * (999999999 – 100000000 + 1) + 100000000; ordernum = "wx" + n; } } 代码块的分类 一个类中代码块若有修饰符,则只能…

抽象类与模板方法模式

抽象类 抽象类不能被实例化,它只能被后代继承。 含抽象方法的类一定是抽象类,但抽象类不一定含抽象方法(虽然这极少见) 继承自抽象类的非抽象类,必须实现父类的全部抽象方法 抽象方法中可以由具体方法以及字段 package com.studyjava.demo; public class Demo3 { public static void main (String[] args) { var stu…

Java接口

概述 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。 另一方面,有时必须从几个类中抽取出一些共同的行为特征,而它们之间又没有is-a的关系,仅仅是具有相同的行为特征而已。例如:鼠标、键盘、打印机、扫描仪、摄像头、充电器、MP3机、手机、数码相机、移动硬盘等都支持USB连接。 接口就是规范,定义的是一组规则,体现了现实世…

Java8新增静态方法及默认方法

静态与私有方法 目前为止,通常的做法都是将静态方法放在接口伴随类中。如:Collection/Collections、Path/Paths。 在java8中,允许在接口中增加静态方法。那么,如果我们自己现在来定义一个接口类,就可以在接口中定义一些常用的静态方法,而不用在去写一个接口伴随类了。 在java9中,接口中的方法可以是private。private方法可以是静态方法或实例方法。 默认方法 …

Cloneable克隆

现有两个类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与Comparator

Comparable Arrays类中的sort方法,可以对对象数组进行排序,但有个前提条件,该对象需要实现Comparable接口。该接口建议compareTo方法应该和equals方法兼容。也就是说,当x.equals(y)时x.compareTo(y)就应该等于0。 package com.studyjava.demo; import java.util.Objects; class Emp…

异常分类及常见异常

在使用计算机语言进行项目开发的过程中,即使程序员把代码写得 尽善尽美,在系统的运行过程中仍然会遇到一些问题,因为很多问题不是靠代码能够避免的,比如:客户输入数据的格式,读取文件是否存在,网络是否始终保持通畅等等。 异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常) 异常分类 Java程序在执行过程中所发生的异常事件可分为两类: Error …

异常处理机制——捕获异常

对于受检查型异常来说,如果未对其进行异常处理,那么该程序编译不会通过,并在控制台上打印一个消息,其中包括这个异常的类型和一个堆栈轨迹。有时候为了防止程序终止,就需要捕获异常,然后做相应的处理。 异常处理有两种机制:抛出异常以及捕获异常。下文细说如何捕获异常 try catch结构 try catch结构语法如下: try { // 可能发生异常的程序块 } catch (Excetpion1 e)…

异常处理机制——声明异常

异常处理机制除了捕获处理外,还有另一种处理方法——声明异常。 声明异常处理方式,其实就是“不处理”的方式。不去处理异常,只是告诉调用者可能会出现哪些异常,让调用者自己去处理。 在实际开发中,这种“不处理”比捕获用的更多。 声明检查型异常 方法不仅需要告诉编译器将要返回什么值,还要告诉编译器可能出现的错误。下面来看如何声明一个异常: public static Class TestException…