api应用程序编程接口
实用的类 具体的类
这些类将底层实现封装了起来
//object类
是类层次的根类
所有的数组对象都实现了他的方法
//hashcode 返回该对象的哈希码值 会根据对象的地址来计算
返回int类型
object obj1=new object();
int hashcode=obj1.hashcode();
syso(hashcode); 此时输出的是hash code 的地址值
对象进内存要申请一个地址值,
//getclass()返回object(此对象)的运行时类
返回的是class 描述类的类
他的方法 getname已String的形式返回此class对象的
所表示的实体(类,接口,数组)名称
//Student s=new student("张三",23)
//Class clazz =s.getClass(); 获取该对象的字节码文件
//string name=clazz.getname();
//syso(name);
//这里输出的是类的名字
//tostring方法 返回该对象的字符串表示
student s=new student("张三",23)
string str=s.tostring();
syso(str); //s输出乱码 类名加十六进制哈希码值
源码
public string tostring()[
return getclass().getname()+@+Interger.tohexstring(hashcode());
] //这是十六进制哈希码值
tostring用于重写 他反回的是字符串
tostring方法的作用更方便的显示属性值
而getxxx是获取值,可以显示赋值 ,或其他操作
//如果直接打印对象的引用,会默认tostring方法,前提重写
//equals方法
判断俩个对象是否相等 返回boolean类型
student s1=new student("张三",23);
student s2=new student("张三",23);
boolean s1=s1.equals(s2);比较对象是否相等
syso(b);
结果不相等 比较的是地址值
源码
public boolean equals(object obj){
return(this==obj);//调入的对象跟传进的对象作比较
}
比较对象的地址值没有意义
object中的equals方法是比较对象的地址值得没有意义
需要重写,因为我们在开发中的我们通常比较的是对象的属性值
我们认为相同属性是同一个对象
这样我们需要重写equals方法
//重写比较对象的属性值
return this.name
多肽的弊端不能访问子类特有的属性和行为;
==和equals的区别
区别==比较的基本数据类型也可以比较引用数据类型
基本数据类型比较的是值,引用数据类型比较的是地址值
equals方法在没重写之前,比较的是地址值。依赖的是==号,没有意义,所以我们需要中邪equals,比较对像的属性值
常见对象scanner
java.util包下 fianl修饰的
只能绿如整数
scanner sc=new scanner(system.in);//键盘绿如
int i=sc.nextint();//录入整数存储在i中
syso (i);
输入a报错原因必须录入整数
hasnextint 判断键盘录入是不是int 数
if (sc.hasnextint()) {
syso(i)
}else{
syso("输入的类型错误")
}
hasnextxxx判断是否包含下一个字符串则可以省略xxx;
//nextint
scanner sc=new scanner(system.in);
syso("");
int i=sc.nextint();
syso("");
int j=sc.nextInt();
syso("i="+i+ ",j="+j); 录入整数
syso("");
string line1=sc,nextline();
syso("")
string line2=sc.nextline();
syso(); 录入字符串
/**
nextint()是键盘录入整数的方法,我们录入10的时候,其实是在键盘上录入的是10和\r\n,nextint()方法只获取10就结束了
nextline()是键盘录入字符串的方法,可以 接受任意类型,但是他凭神魔通过\r]n,只要遇到\r]n就证明一行结束
*/
syso("")
int i =sc.nextint();
syso("");
string line2=sc.nextline();
syso();
解决方案可以重新定义一个键盘录入
第二种直接录入字符串,再将字符串转成整数
//String 不能有子类"asd"实例代表字符串
字符串市场量是常量,一旦被赋值,就不能被改变,
String str="abc";
str="def" 原来的abc变成了垃圾
syso(str); //返回对象本身 String重写了tostring方法
String s1=new string(); //空构造
syso(s1 )输出空串
byte【】arr1={98,97,98,}; 将字节数组转换成字符串
string s2=new string(arr1);
syso(s2 ) |
|