A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kjkjkjh 中级黑马   /  2015-12-20 21:16  /  626 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 )

4 个回复

倒序浏览
赞一个。
回复 使用道具 举报
666666666总结得不错。
回复 使用道具 举报
66666666666666666666666666
回复 使用道具 举报
加油,赞一个~!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马