java学习 ————— 基本类型的封装类

时间:2021-05-15 15:46:29

3.1基本类型的封装类

1.封装类

Java语言认为一切皆为对象。

8个基本数据类型也应该具备对应的对象。

通过封装类可以把8个基本类型的值封装成对象进行使用。

JDK1.5开始,java允许将基本类型的值直接赋值给对应的封装类对象。

 

 

 

2.封装类的作用

 将字符串的值转换为基本类型

 1)直接调用封装类的构造方法,即XXXString s)构造方法

 2)调用封装类提供的parseXXXString s)静态方法

 

 

3.2Object类

Java基础类库提供了一些常用的核心类,包括objectstringmath等。其中,object对象类定义在java.long包中,是所用类的*父类,在java体系中,所有类都直接或间接的继承了object类。因此,任何java对象都可以调用object类中的方法 ,而且任何类型的对象都可以赋给object类型的变量。

Equals()方法

两个基本类型的变量比较是否相同时直接使用==”运算符即可,但两个引用类型的对象比较是否相等时则有两种方式:

(1)“==”运算符比较的是两个对象地址是否相同 ,即引用的是同一个对象。

(2)Equals()方法通常用于比较两个对象的内容是否相同 。

 

toString方法

Object类的toString方法是一个非常特殊的方法,他是一个“自我描述”的方法,该方法返回当前对象的字符串表示。


3.3字符串类

1.String类常用方法

 

1length()字符串的长度

  例:char chars[]={'a','b'.'c'};

String s=new String(chars);

int len=s.length();

 

2charAt()截取一个字符

  例:char ch;

ch="abc".charAt(1); 返回'b'

 

3getChars()截取多个字符

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

sourceStart指定了子串开始字符的下标,sourceEnd指定了子串结束后的下一个字符的下标。因此, 子串包含从sourceStartsourceEnd-1的字符。接收字符的数组由target指定,target中开始复制子串的下标值是targetStart

  例:String s="this is a demo of the getChars method.";

char buf[]=new char[20];

s.getChars(10,14,buf,0);

 

4getBytes()

  替代getChars()的一种方法是将字符存储在字节数组中,该方法即getBytes()

 

5toCharArray()

 

6equals()equalsIgnoreCase()比较两个字符串

 

7regionMatches()用于比较一个字符串中特定区域与另一特定区域,它有一个重载的形式允许在比较中忽略大小写。

boolean regionMatches(int startIndex,String str2,int str2StartIndex,int numChars)

boolean regionMatches(boolean ignoreCase,int startIndex,String str2,int str2StartIndex,int numChars)

 

8startsWith()endsWith()startsWith()方法决定是否以特定字符串开始,endWith()方法决定是否以特定字符串结束

 

9equals()==

equals()方法比较字符串对象中的字符,==运算符比较两个对象是否引用同一实例。

  例:String s1="Hello";

String s2=new String(s1);

s1.eauals(s2); //true

s1==s2;//false

 

10compareTo()compareToIgnoreCase()比较字符串

 

11indexOf()lastIndexOf()

indexOf() 查找字符或者子串第一次出现的地方。

lastIndexOf() 查找字符或者子串是后一次出现的地方。

 

12substring()  它有两种形式,第一种是:String substring(int startIndex)

第二种是:String substring(int startIndex,int endIndex)

 

13concat()连接两个字符串

 

14 replace()替换

  它有两种形式,第一种形式用一个字符在调用字符串中所有出现某个字符的地方进行替换,形式如下:

String replace(char original,char replacement)

  例如:String s="Hello".replace('l','w');

  第二种形式是用一个字符序列替换另一个字符序列,形式如下:

String replace(CharSequence original,CharSequence replacement)

 

15trim()去掉起始和结尾的空格

 

16valueOf()转换为字符串

 

17toLowerCase()转换为小写

 

18toUpperCase()转换为大写

 

 

2.Stringbuffer类的用法

 

StringBuffer构造函数

StringBuffer定义了三个构造函数:

StringBuffer()

StringBuffer(int size)

StringBuffer(String str)

StringBuffer(CharSequence chars)

  

(1)、length()和capacity()

  一个StringBuffer当前长度可通过length()方法得到,而整个可分配空间通过capacity()方法得到。

  

(2)、ensureCapacity() 设置缓冲区的大小

void ensureCapacity(int capacity)

 

(3)、setLength() 设置缓冲区的长度

void setLength(int len)

 

(4)、charAt()和setCharAt()

char charAt(int where)

void setCharAt(int where,char ch)

 

(5)、getChars()

void getChars(int sourceStart,int sourceEnd,char target[],int targetStart)

 

(6)、append() 可把任何类型数据的字符串表示连接到调用的StringBuffer对象的末尾。

    例:int a=42;

StringBuffer sb=new StringBuffer(40);

String s=sb.append("a=").append(a).append("!").toString();

 

(7)、insert() 插入字符串

StringBuffer insert(int index,String str)

StringBuffer insert(int index,char ch)

StringBuffer insert(int index,Object obj)

index指定将字符串插入到StringBuffer对象中的位置的下标。

 

(8)、reverse() 颠倒StringBuffer对象中的字符

StringBuffer reverse()

 

(9)、delete()和deleteCharAt() 删除字符

StringBuffer delete(int startIndex,int endIndex)

StringBuffer deleteCharAt(int loc)

 

(10)、replace() 替换

StringBuffer replace(int startIndex,int endIndex,String str)

 

(11)、substring() 截取子串

String substring(int startIndex)

String substring(int startIndex,int endIndex)


3.4scanner类

1.包:

import Java.util.Scanner

2.使用方法:

Scanner reader=new Scanner(System.in);    

然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:  

nextByte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShort()    



3.5继承与多态

1.继承

一个类可以继承另外一个类

被继承的类通常称为“父类”、“超类”、“基类”

继承者称为子类。

继承通过extends”关键字来实现

语法:

【访问符】【修饰符】class子类 extends 父类{}

Object类是所有类的*父类,在java中,所有类都是直接或间接的继承了object类 。

Java只支持单一继承。

实例化一个子类对象时,会先调用父类构造函数进行初始化,再调用子类自身的构造方法进行初始化,即构造方法的执行次序是:父类---->子类

 

2.多态

多态通常体现在具有继承关系和实现关系的类之间,一个父类具有多个子类,可以将子类对象直接赋值给一个父类引用变量,无需任何类型转换。

子类重写父类的方法也是java多态性的一种体现。当子类继承父类时,如果父类的方法无法满足子类的需求,子类可以对父类中的方法进行改造,这种情况称为“方法的重写”

 

 

3.Super

Super关键字代表父类对象,其主要用途如下:

在子类的构造方法中调用父类的构造方法

在子类方法中访问父类的属性或方法



3.6接口

接口定义了某一批所需要遵守的公共行为规范,只规定这批类必须提供的某些方法,而不提供任何实现。接口体现的是规范和实现分离的设计哲学。让规范和实现分离正是接口的好处,让系统的各模块之间面向接口耦合,是一种松耦合的设计,从而降低各模块之间的耦合,增强系统的可扩展性的可维护性。

Java只支持单一继承,不支持多重继承,即一个类只能继承一个父类,这一缺陷可以通过接口来弥补。Java允许一个类实现多个接口,这样使程序更加灵活、易扩展。

语法:

【访问符】interface接口名{}

一个接口可以继承多个父接口,但接口只能继承接口。

在接口体里可以包含静态常量、抽象方法、内部类、内部接口以及枚举的定义,从java 8开始允许接口中定义默认方法、类方法。

与类的默认访问符不同,接口体内定义的常量、方法等都默认为public,可以省略public关键字,即当接口中定义的常量或方法不写public,其访问权限仍然是public

接口不能直接实例化,但可以使用接口声明引用类型的变量,该变量可以引用到接口的实现类的实例对象上。

接口的主要用途就是被实现类实现,一个类可以实现一个或多个接口。