java 面向对象三
2021-06-08 15:02
标签:位置 object类 end 字符串 shc bool 拆箱 自己 引用类型 Java提倡的万物皆对象,但是数据类型的划分出现了基本数据类型和引用数据类型,那么我们怎么能把基本数据类型称为对象呢? 所有类的公共父类,一旦一个类没有显示地继承一个类则其直接父类一定是Object。 一切数据类型都可用Object接收 class OOXX extends Object{}等价于class ooXX {} 常见方法 Object类的 toString()方法:“对象的描述” 打印对象的时候,实际调用的对象实际指向的类的自我描述; equals也是判断是否指向同一个对象 String 覆写了 Object的equals方法:只比较字符的序列是否相同 ==用于判断两个变量是否相等 java 面向对象三 标签:位置 object类 end 字符串 shc bool 拆箱 自己 引用类型 原文地址:https://www.cnblogs.com/linbin7/p/14525531.html1.基本数据类型的包装类
2.自动装箱&自动拆箱
3.基本类型和String之间的转换
String str = "17";
int i = Integer.parseInt(str);//String --> 基本类型
String s1 = String.valueOf(i);//基本类型 --> String
4.Object类
public boolean equals(Object obj):对象比较
public int hashCode():取得该对象的Hash码
public String toString():对象描述
建议所有类都覆写此方法
直接打印输出对象时,会调用该对象的toString()方法。
全限定类名+@+十六进制的hashCode值,等价于
全限定类名+@+IntegertoHexString(该对象.hashCode) ;
没有实际意义,有必要可以重写
public boolean equals(Object obj) {}
基本类型:
引用类型:必须指向同一个对象,才true
只能比较有父子或平级关系的两个对象5.代码块
普通代码块;
构造代码块;
优先于构造方法执行,每次实例化对象之前都会执行构造代码块。{
System.out.println("我是构造代码块");
}
public Demo(){
System.out.println("我是构造方法");
}
public static void main(String[] args) {
Demo d1 = new Demo();
Demo d2 = new Demo();
}
静态代码块;
优先于主方法执行,优先于构造代码块执行,不管有创建多少对象,静态代码块只执行一次,可用于给静态变量赋值;
{
System.out.println("我是构造代码块");
}
public Demo(){
System.out.println("我是构造方法");
}
static {
System.out.println("我是静态代码块");
}
public static void main(String[] args) {
System.out.println("Main");
new Demo();
new Demo();
}
同步代码块。
只在自己所在区域(前后的{})内有效;