Java学习笔记(二)

本文是Java学习笔记的第二部分,主要介绍了Java中的接口和内部类,详细阐述了接口如何实现多继承,接口的成员变量和方法特点。接着讲解了Java异常处理,包括异常类、异常的抛出与捕获机制。此外,还提到了字符串操作,如判断空串、比较子串等方法。最后简单提及了线程基础知识。
摘要由CSDN通过智能技术生成

Java学习笔记(二)

紧接着Java学习笔记一来写的,由于是入门课,所以学的内容很基础。

(三)、Java中的接口与内部类:

   为了弥补java的不支持多继承,所以Java通过接口来实现多继承。

使用关键字interface声明一个接口
格式:
interface  接口的名字

 

 

接口定义与类定义的区别:

成员变量部分:接口中只能定义常量

每个成员都默认是public  static  final无法改变

也正因为如此,上述关键字可以省略

方法部分:接口中只能定义抽象方法

每个方法都默认是public  abstract无法改变。因此,接口体中只进行方法的声明,不许提供方法的实现

也正因为如此,上述关键字可以省略

类通过使用关键字implements声明使用一个或多个接口;多个接口之间用逗号隔开。如:
class A  implements  Printable,Addable

如果一个类使用了某个接口,那么必须实现该接口的所有方法,否则,该类必须是抽象类

注意:实现接口方法时,必须加上public

 

(四)、Java中的异常

所谓异常就是指程序运行时可能出现的一些错误         出现异常时,JVM就用异常类Exception的相应子类创建一个异常对象,并等待处理。例如:读取一个不存在的文件时,会产生一个IOException对象

Java中声明了很多异常类,每个异常类都代表了一种运行错误,异常类的对象可以调用如下方法得到或输出有关异常的信息:

public String getMessage()  //异常类的消息

public void printStackTrace()  //错误方法栈

public String toString()  //异常类的描述

 

异常的处理方法有两种:

throws/throw语句抛出异常,表示执行某方法时发生了异常,由程序员定义解决位置和方法;

try—catch块捕获异常,程序员在catch块中进行相应的处理

 

抛出异常

throw:出现在方法体中,程序员在可能出现异常的代码处手动抛出异常throw后的语句不再执行

throws出现在方法声明中,描述该方法在执行时可能发生的异常

 

 

catch语句:对异常的处理语句放在 catch部分,可以包含多个catch语句,分别处理发生的相应异常,通常会用到两个方法:

getMessage() :返回一个字符串对发生的异常进行描述。

printStackTrace() :给出方法的调用序列,一直到异常的产生位置

 

Class类的特点

java.lang包中的类,该类的实例用来封装对象运行时的状态

Class类本身不提供构造方法,因此,不能使用new运算符和构造方法显式地创建一个Class对象。当一个类被加载且创建对象时,和该类相关的一个类型为Class的对象就会自动创建

任何对象调用getClass()方法都可以获取和该对象相关的一个Class对象,这个Class对象可以获取所属类的有关信息

 

(五)字符串

 

判断字符串空串:

s.equals("")

s.length() < 1

s.isEmpty()

 

 

startsWith(String s)

判断字符串的前缀是否是指定字符串s

endsWith(String s)

判断字符串的后缀是否是指定字符串s

 

regionMatches(int firstStart, String other, int ortherStart, int length)

从当前字符串firstStart指定的位置开始,取长度为length的一个子串1

other是比较字符串,从othertStart指定的位置开始,取长度为length的另一个子串2

如果两个子串相同则返回true,否则返回false

compareTo(String s)

当前字符串与s相同,返回值0

当前字符串大于s,返回正值

当前字符串小于s,返回负值

 

int indexOf (String s)

查找子串s的出现位置,并返回首次出现的位置

如果未包含子串s,则返回-1

lastIndexOf (String s)

查找子串s的出现位置,并返回最后出现的位置

如果未包含子串s,则返回-1

substring(int startpoint)

获取子串,该子串从startpoint开始到串末尾

重载方法:substring(int start ,int end)

获取子串,该子串从start开始到end

注意:不包括end处的字符,例如:

 

replaceAll(String oldString ,  String newString)

newString替换oldString

public String trim()

去掉字符串前后的空格

 

String[] split(String reg)

reg作为分隔符,获取分隔后的字符串数组

大小写转换:toUpperCase()方法将Srtring转换为大写

 toLowerCase()方法将String转换为小写

                   

StringTokenizer

 

–StringBuffer类的方法

append()追加字符串,有许多重载方法

   如:append(String s)

 

 

charAt(int n)获取指定位置字符

void setCharAt(int n,char c)替换指定字符

StringBuffer insert(int n,String s)插入字符串

 

 

 

使用Calendar类的static方法getInstance()可以初始化一个日历对象,默认指向当前时间,如:
Calendar  c = Calendar.getInstance();

      Calendar calendar=Calendar.getInstance();  

      int year = calendar.get(Calendar.YEAR),

      month = calendar.get(Calendar.MONTH)+1,

 

 

 

Random random=new Random();

  random.nextInt();  //返回一个随机整数值

  random.nextInt(100);  //返回一个[0, 100)之间的随机数

  random.nextBoolean(); //返回一个随机boolean

 

 

先使用exists()方法判断文件是否存在

再使用canRead()/canWrite()方法判断文件权限

import java.io.*;
class MyFileReader {
    String read(String fileName, int n) {
        String str = null;
        File file = new File(fileName);
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new FileReader(file));
        }
        catch(IOException e){
            
        }
        for(int line=1;line<=n;line++) {
        try {
            str = reader.readLine();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        

    }
        return str;
    }
}

 

线程:

class A extends Thread{
    String value;
    public void setValue(String value) {
        this.value = value;
    }

    
    public void run() {
        for(int i=0;i<value.length();i++){
            System.out.print(value.charAt(i));
            try {
                Thread.sleep(270);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

Netbeans快捷键:导入所需包:ctrl+shift+i 

                             

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值