文章标题
来源:互联网 发布:python 爬取搜索引擎 编辑:程序博客网 时间:2024/06/05 18:40
Day15
一 Java的API及object类
1.API概念
Java API就是JDK中提供给我们使用的类,
只需要学习这些类如何使用即可。
2.Object类概述
Q:为什么之类的构造方法默认访问的是父类的无参构造方法?
Java语言中的根类
所有类都直接或间接继承该类
object描述的方法子类都可以使用
所有类在创建对象时最终找的父类就是object
接口不继承object
3.equals方法比较内存地址
引用类型中 = = 用来比较对象的内存地址是否相同
if(A instanceof B) 判断类型A是否为B类型
Q:object方法中equal()方法的作用?
用于比较两个对象是否相同,Object类中就是使用两个对象的内存地址在比较。
Object类中的equals方法内部使用的就是==比较运算符。
对象都是new出来的 地址都不相同 两个对象比较地址 并没有什么实际意义 此时应该考虑比较对象的成员变量(应重写父类的equals方法 自己定义对象的比较方式)
4.重写toString方法
package demo01;public class person { private String name; private int age; person(String name,int age){ this.name = name; this.age = age; } //here,rewrite toString() function public String toString(){//public 后记得跟的是方法的返回类型 return name+"今年的年龄是"+age;// tip: here cannot write static type }public String getName() { return name;}public void setName(String name) { this.name = name;}public int getAge() { return age;}public void setAge(int age) { this.age = age;}}import java.util.Random;//toString 返回该对象的字符串表示//本讲研究toString方法public class Testtostring { public static void main(String[] args) { //调用person类的方法toString person p = new person("张三",20); String s = p.toString();//注意方法的返回值是String类型 要用String类型的变量去接收 System.out.println(s);//输出结果是对象的内存地址 System.out.println(p);//由运行结果相同看出 输出语句中的参数是一个对象的话 默认调用该对象的toString方法 //该语句等价于System.out.println(p.toString)(); //此处没有必要去看对象的内存地址,所以返回person类中去重写toString 的方法 Random r = new Random(); System.out.println(r);//此处举例,显示的结果是Random类在内存中的地址 }}
第三章 String类
1.String类就代表一个字符串对象
package demo02;/* * String类的特点: * java中的思想 一切皆对象;所以字符串“ ”这玩意也是对象 * 类是用来描述事物的,String类就是用来描述字符串对象 * java中,所有的""都是String类的对象 * * 方法进栈 ,对象在堆内存 * 字符串的本质 是一个字符的 数组 点住类按F3可查看类的源码 */public class Stringdemo { String str = "zzl";//此处即是声明了一个字符串对象str(是一个引用类型 zzl是一个字符串常量),而且不需要写new}
2.String类创建方式和比较
package demo02;public class Stringdemo02 { public static void main(String[] args) { //字符串定义方式有两种 一是直接用= 二是使用String类的构造方法 String str1 = "abc";//方式一 String str2 = "abc";// System.out.println(str1); System.out.println(str2); System.out.println(str1==str2);//引用数据类型 比较对象的地址 此处的结果是true 说明是指向了同一地址 String str3 = new String("abc");//字符串定义方式二 记得加:“” str3保存的是new string的一个内存地址,并非是abc所占据的地址 System.out.println(str1==str3);//此处虽然是同一个字符串 但定义方式不同,导致内存地址并不相同,结果是false System.out.println(str1.equals(str3));//t 此处相同的原因是因为string类继承了父类object,重写了方法equals,建立了字符串自己的比较方式,不再是比较地址,而是去比较字符串中每个字符是否相同 System.out.println(str1.equals(str2));//t}}
3.String类构造方法
package demo02;/* * String类的构造方法,重载形式多 */public class StringDemo03 { public static void main(String[] args) { f1(); f2(); } /* * 定义方法,String类的构造方法 很多 仅仅举例常用讲解 * String(byte[] bytes) 传递字节数组 将字节数组转成字符串 * 通过使用平台的默认字符集 解码指定的byte数组 构造一个新的string * 平台:机器所使用的操作系统 * 默认字符集:操作系统中的默认编码表,中文的为GBK(简体中文 兼容ascll编码表)一个汉字俩字符 */ public static void f1() { byte[] bytes = {97,98,99,};//该String的构造方法将数组中的每个字节对应的查询编码表,得到新结果;此处如果是负数,则会出现汉字 String s = new String(bytes); System.out.println(s); byte[] bytes1 = {65,66,67,68,69,70}; String s1 = new String(bytes1,0,2); //String(byte[] bytes,int offset,int length) 字符数组的一部分变成字符串 //offset 数组开始的索引; length 转换的个数,并非结束索引,此处从0开始取2个 System.out.println(s1); } /* * String(char[] value) 传递字符数组 * 将字符数组转换成字符串 ;注意这里是字符数组而非字节数组 */ public static void f2(){ char[] ch = {'a','b','c','d','e','f','g','h'}; String s = new String(ch);//调用string的该构造方法 将该字符数组传入 System.out.println(s); String s1 = new String(ch,1,4); System.out.println(s1); }}
阅读全文
0 0
- 文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题 文章标题 文章标题 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- 文章标题
- HDU 1533Going Home(KM算法求二分图最小权匹配或者最小费用最大流)
- jzoj 4883. 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰
- SpringBoot开发微信公众号(五)
- MAC自带的SVN的服务器端配置
- SPARK的线性代数库BLAS
- 文章标题
- 【剑指offer】数组中重复的数字
- angular综合题 添加 删除 排序 隔行变色 等
- (十五)java并发编程--线程的死锁(deadlock)
- js日期
- 开启愉快的路由之旅:广工校园网Wifi
- PostgreSQL jdbc ,通过java进行简单连接
- 基于DM3730芯片的GPIO口配置方法和C程序例程
- 欧几里得几何(5)Epsilon