Java - 第二天

类的初始化

https://www.ibm.com/developerworks/cn/java/j-lo-clobj-init/index.html

@Override的作用

https://blog.csdn.net/L670697197/article/details/78685037

反射机制

https://www.w3cschool.cn/java/java-reflex.html

------------------------------------------------------------------------------------------------------------------------------------------------------------------

异常

捕获异常

try
{
   // 程序代码
}catch(ExceptionName e1)
{
   //Catch 块
}

多重捕获块

 try{
    // 程序代码
 }catch(异常类型1 异常的变量名1){
    // 程序代码
 }catch(异常类型2 异常的变量名2){
    // 程序代码
 }catch(异常类型2 异常的变量名2){
    // 程序代码
 }

finally关键字:无论是否发生异常,finally代码块中的代码总会被执行。

 try{
    // 程序代码
 }catch(异常类型1 异常的变量名1){
    // 程序代码
 }catch(异常类型2 异常的变量名2){
    // 程序代码
 }finally{
    // 程序代码
 }

throws/throw关键字:

如果一个方法没有捕获一个检查性异常,那么该方法必须使用throws 关键字来声明。throws关键字放在方法签名的尾部,多个异常可用逗号隔开。

也可以使用throw关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。

public void withdraw(double amount) throws RemoteException,
                              InsufficientFundsException

注:try代码后不能既没catch块也没finally块,try、catch、finally块之间不能添加任何代码。

定义自己的异常类

------------------------------------------------------------------------------------------------------------------------------------------------------------------

文件

创建:

File dummyFile = new File("test.txt");
boolean fileCreated  = dummyFile.createNewFile();//若成功创建则返回true

创建临时文件:File tempFile = File.createTempFile("abc", ".txt");

当前工作目录和更改、是否存在该文件:

String  workingDir = System.getProperty("user.dir");
System.setProperty("user.dir", "C:\\myDir");
boolean fileExists = dummyFile.exists();

路径:使用getAbsolutePath()和getCanonicalPath()方法来分别获得由File对象表示的绝对路径和规范路径。

文件分隔符(File.separator):在程序中使用名称分隔符将使您的Java代码在不同的平台上工作。

文件操作

https://www.w3cschool.cn/java/java-io-file-operation.html

------------------------------------------------------------------------------------------------------------------------------------------------------------------

泛型

https://zhuanlan.zhihu.com/p/28242753

用来规定一个类、接口或方法所能接受的数据的类型. 就像在声明方法时指定参数一样, 我们在声明一个类, 接口或方法时, 也可以指定其"类型参数", 也就是泛型.

  • 变量类型中的泛型,和实例类型中的泛型,必须保证相同(不支持继承关系)。

  • 既然有了这个规定, 因此在JDK1.7时就推出了一个新特性叫菱形泛型(The Diamond), 就是说后面的泛型可以省略直接写成<>, 反正前后一致。

------------------------------------------------------------------------------------------------------------------------------------------------------------------

构造方法

方法名要与类名相同,没有返回值(包括void),用来进行初始化。

若没有显式的自定义构造方法,java会自动生成一个无参的构造方法。

------------------------------------------------------------------------------------------------------------------------------------------------------------------

抽象类

抽象方法:

只有声明,而没有具体的实现

abstract void fun();//抽象方法必须用abstract关键字进行修饰

抽象类(还能有抽象方法的类)和普通类:

抽象类是为了继承而存在的

[public] abstract class ClassName {
	abstract void fun();
}

0.抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。

1、抽象类不能被实例化,因为它是存在于一种概念而非具体。

2、普通类和抽象类都可以被继承,但是抽象类被继承后子类必须重写继承的方法,除非自身也是抽象类。

抽象类和抽象接口:

接口是对动作的抽象,抽象类是对本质的抽象。一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

[public] interface InterfaceName {
	
}

实现接口使用implements关键字:

class ClassName implements Interface1, Interface2[,...,] {
	
}

 

  1. 抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract方法;
  2. 抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的;
  3. 接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态方法;
  4. 一个类只能继承一个抽象类,而一个类却可以实现多个接口。
  5. 抽象类 和 接口 都是用来抽象具体对象的. 但是接口的抽象级别最高
  6. 抽象类主要用来抽象类别,接口主要用来抽象功能.
  7. 抽象类中,且不包含任何实现,派生类必须覆盖它们。接口中所有方法都必须是未实现的。
  8. 接口是设计的结果 ,抽象类是重构的结果

使用方向:当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口

门和警报的例子:

interface Alarm {
	void alarm();
}//警报为延伸出来的行为
 
abstract class Door {
	public void open();
	public void close();
}//门固有的行为
 
public class AlarmDoor extends Door implements Alarm {
	void open() {
		// ......
	}
 
	void close() {
		// ......
	}
 
	void alarm() {
		// ......
	}
}

------------------------------------------------------------------------------------------------------------------------------------------------------------------

内部类

https://blog.csdn.net/qq_33599978/article/details/70880803

------------------------------------------------------------------------------------------------------------------------------------------------------------------

this关键字

1.应用一:引用成员变量

2.应用二:调用类的构造方法

3.应用三:返回对象的值

super关键字

1.调用超类方法

2.调用超类的构造器

注:super不是一个对象的引用,不能将super赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。

------------------------------------------------------------------------------------------------------------------------------------------------------------------

浅析java中final,static和abstract关键词

https://blog.csdn.net/qq_28057577/article/details/51114798

------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值