Java内置的包装类
序号 | 基本数据类型 | 包装类 |
---|---|---|
1 | byte | Byte |
2 | short | Short |
3 | int | Integer |
4 | long | Long |
5 | char | Character |
6 | float | Float |
7 | double | Double |
8 | boolean | Boolean |
1.装箱和拆箱
基本数据类型转换为包装类的过程称为装箱,例如把 int 包装成 Integer 类的对象;包装类变为基本数据类型的过程称为拆箱,例如把 Integer 类的对象重新简化为 int。
举个栗子:
int m=50;
Integer obj =m;//自动装箱
int n=obj;//自动拆箱
System.out.println("n="+n);
Integer obj1=50;
System.out.println(obj1.equals(obj));
2.包装类的应用
例如:
String s="123";
int a=Integer.parseInt(s);
System.out.println(a);
float f =Float.parseFloat("13.3");
System.out.println(f);
String ss=Integer.toString(a);
System.out.println(ss);
Java object 类详解
Object 是 Java类库中的一个特殊类,也是所有类的父类。也就是说,Java 允许把任何类型的对象赋给 Object 类型的变量。当一个类被定义后,如果没有指定继承的父类,那么默认父类就是 Object 类。
public class MyClass{…}和public class MyClass extends Object {…}相等。
对象都可以调用的类:
方法 | 说明 |
---|---|
Object clone() | 创建与该对象的类相同的新对象 |
boolean equals(Object) | 比较两对象是否相等 |
void finalize() | 当垃圾回收器确定不存在对该对象的更多引用时,对象垃圾回收器调用该方法 |
Class getClass() | 返回一个对象运行时的实例类 |
int hashCode() | 返回该对象的散列码值 |
void notify() | 激活等待在该对象的监视器上的一个线程 |
void notifyAll() | 激活等待在该对象的监视器上的全部线程 |
String toString() | 返回该对象的字符串表示 |
void wait() | 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待 |
其中,toString()、equals() 方法和 getClass() 方法在 Java 程序中比较常用。
toString() 方法返回该对象的字符串,当程序输出一个对象或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的 toString() 方法返回该对象的字符串表示。
class demo{}
public class Main {
public static void main(String[] args) {
demo d=new demo();
System.out.println(d);
System.out.println(d.toString());
}
}
public class Main {
private String name;
private int age;
public Main(String name,int age){
this.age=age;
this.name=name;
}
public String toString(){
return "姓名:" + this.name + ":年龄" + this.age;
}
public static void main(String[] args) {
Main m=new Main("ccc",20);
System.out.println(m);
}
}
equals() 方法
曾经介绍过两种比较方法,分别是==
运算符和 equals() 方法,==
运算符是比较两个引用变量是否指向同一个实例,equals() 方法是比较两个对象的内容是否相等,通常字符串的比较只是关心内容是否相等。
- boolean result = obj.equals(Object o);
import java.util.Scanner;
public class Main {
public class test{
public static boolean login(String username,String pwd)
{
boolean con =false;
if(username.equals("admin")&&pwd.equals("admin")){con=true;}
return con;
}
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("用户名:");
String username = input.next(); // 获取用户输入的用户名
System.out.println("密码:");
String pwd = input.next(); // 获取用户输入的密码
boolean con =test.login(username,pwd);
if (con){
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码有误!");
}
}}
getClass() 方法
getClass() 方法返回对象所属的类,是一个 Class 对象。通过 Class 对象可以获取该类的各种信息,包括类名、父类以及它所实现接口的名字等。
对一个类class obj;
1.obj.getClass().getName();用来获取obj的类名
2.obj.getClass().getSuperclass().getName()获取obj父类的类名
3.obj.getClass().getInterfaces() 获取接口
接收任意引用类型的对象
既然 Object 类是所有对象的父类,则所有的对象都可以向 Object 进行转换,在这其中也包含了数组和接口类型,即一切的引用数据类型都可以使用 Object 进行接收。
Java Integer类详解
Integer 类在对象中包装了一个基本类型 int 的值。Integer 类对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。
Integer 类的构造方法
Integer 类中的构造方法有以下两个:
- Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值。
- Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。