Object类:
每个类都默认直接或者间接继承了Object类(所以说每个类都可以调用这两种方法)
1.toString()方法:把对象以字符串形式返回,当我们直接打印对象的引用时,该引用会输出地址
2.equals()方法:使用"=="来比较对象的地址值
==比较
1.用于基本是据类型,比较的是数据值
2.用于引用数据类型,比较的时地址
Object类
public class ObjectDemo {
public void test(){
}
public static void main(String[] args) {
Student stu=new Student("zhangsan",1,101);
System.out.println(stu.toString());//默认有.toString() {姓名:zhangsan,年龄:1,学号:101}
Student stu2=new Student("lisi",18,101);
System.out.println(stu2);//{姓名:lisi,年龄:18,学号:101}
System.out.println(stu.equals(stu2));//stu==stu2 false 两个是不同对象,地址值不同
//当两个学生对象一致时,调用equals判断返回true
Math.abs(1);//方法名相同,参数不同 ----重载
}
}
Math类
public class MathTest {
public static void main(String[] args) {
//输出-5的绝对值
int i=Math.abs(-5);
System.out.println(i);//5
//向上取整
System.out.println(Math.ceil(2.5));//3.0
//向下取整
System.out.println(Math.floor(-4.5));//-5.0
//随机数 随机生成0~1之间的小数
double ranNum=(int)(Math.random()*11);//[0,11)
System.out.println(ranNum);//随机生成double类型[0,11)的整数
System.out.println(Math.min(10, 12));//10
//1.使用Math相关的API,计算在-5.8到5.9之间.绝对值大于3或者小于1.1的整数有多少个||
//-5,-4,-3,-2,-1,0,1,2,3,4,5
int m=(int)Math.ceil(-5.8);//-5
int n=(int)Math.floor(5.9);//5
int count=0;
for(int a=m;a<=n;a++){
//求绝对值
int c=Math.abs(a);
if (c>3||c<1.1){
count++;
}
}
System.out.println("有"+count+"个");//有7个
String str="abc";
String str2="Abc";
System.out.println(str.equalsIgnoreCase(str2));//true
}
}
String类中的常用方法:
1.equalsIgnoreCase / equals 比较字符串的内容是否相同,忽略大小写
2.starWith startsWith(String prefix):判断字符串对象是否以指定的字符开头(区分大小写) startsWith(String prefix,int toffset):判断字符串对象是否以指定的字符开头,参数toffset为指定从哪个下标开始
3.length 获取字符串的长度,其实也就是字符个数
4.charAt 获取指定索引处的字符
5.indexOf 返回指定字符第一次出现的字符串内的索引。
6.subString 从start开始截取字符串 String substring(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
7.toCharArray 把字符串转换为字符数组
8.trim 去除字符串两端空格
9.replace 将指定字符替换成另一个指定的字符
10.split 去除字符串中指定的的字符,然后返回一个新的字符串地址
String类
public class StringTest {
public static void main(String[] args) {
String str="abc ";
String str2="b";
System.out.println(str.indexOf("b"));//第一个b的下标//1
System.out.println(str.length());//字符串的长度//4
System.out.println(str.charAt(1));//获取指定索引处的字符 括号里是下标//b
System.out.println(str.substring(1));//输出截取的字符串//bc
System.out.println(str.toCharArray());//转换成字符数组// abc
System.out.println(str.trim());//去掉前后空格//abc
System.out.println(str.replace('b','d'));//括号中直接输引号,不用写数据类型//abc
System.out.println(str.split("b"));//返回字符串返回的是地址[Ljava.lang.String;@74a14482
System.out.println(str.toString());//以字符串形式输出//abc
System.out.println(str);//toString可省略//abc
System.out.println(str.equalsIgnoreCase(str2));//false
}
}
注:
子类可以重写Object父类的toString方法
也可以重写父类Object类中的equals方法
import java.util.Objects;
public class Student {
String name;
int age;
int stuNo;
//构造器默认属性值
public Student(String name, int age, int stuNo) {
this.name = name;
this.age = age;
this.stuNo = stuNo;
}
//重写Object父类的toString方法
@Override
public String toString() {
return "{姓名:"+name+",年龄:"+age+",学号:"+stuNo+"}";
}
//重写父类Object类中的equals方法
//当两个学生学号一致时,调用equals判断返回True
@Override
public boolean equals(Object obj) {
//判断传递过来的是否是Student类型
if (obj instanceof Student){
//将obj强转城Student类型 向下转型
Student stu=(Student) obj;
return stu.stuNo==this.stuNo;
}
return false;
}
}