Object类

Object类是Java语言中的根类,即所有类的父类。

equals方法

返回值类型为:boolean类型

用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。

例子:

packagecom.oricle.object;public class Person extendsObject{privateString name;private intage;publicPerson(){

}public Person( String name,intage){this.age=age;this.name=name;

}//复写父类的equals方法,实现自己的比较方式

public booleanequals(Object obj) {//判断对象是否为空

if(obj ==null){return false;

}//判断当前调用equals方法的对象和传递进来的对象是否是同一个

if(obj ==this){return true;

}//判断传递进来的对象是否是Person类型

if(obj instanceofPerson){//将obj向下转型为Perosn引用,访问其属性

Person p=(Person)obj;return this.age==p.age;

}return false;

}

}

测试类:

packagecom.oricle.object;importjava.util.ArrayList;public classDemo01 {public static voidmain(String[] args) {

Person p1=new Person("江小鱼",3);

Person p2=new Person("花无缺",3);

System.out.println(p1==p2);//判断两个对象地址相等

System.out.println(p1.equals(p2));//重写后判断内容相等

}

}

注意:在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。

toString方法

返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。如下:

packagecom.oricle.object;public class Person extendsObject{privateString name;private intage;publicPerson(){

}public Person( String name,intage){this.age=age;this.name=name;

}//复写父类的equals方法,实现自己的比较方式

public booleanequals(Object obj) {//判断对象是否为空

if(obj ==null){return false;

}//判断当前调用equals方法的对象和传递进来的对象是否是同一个

if(obj ==this){return true;

}//判断传递进来的对象是否是Person类型

if(obj instanceofPerson){//将obj向下转型为Perosn引用,访问其属性

Person p=(Person)obj;return this.age==p.age;

}return false;

}

//重写toString方法

publicString toString() {return "name:"+name;

}

}

测试类:

packagecom.oricle.object;importjava.util.ArrayList;public classDemo01 {public static voidmain(String[] args) {

Person p1=new Person("江小鱼",3);

Person p2=new Person("花无缺",3);

System.out.println(p1==p2);

System.out.println(p1.equals(p2));

//重写toString方法System.out.println(p1.toString());

}

}

结果如下:

String类

构造方法

把字节数组作为对象的内容

packagecom.oricle.String;public classGouzao {public static voidmain(String[] args) {//48为0,97为a,65为A

byte[] bytes={97,98,99,100};

String str=newString (bytes);

String str2=new String (bytes,1,2);//创建String对象,把一部分数组元素作为字符串的内容,

//参数offset为数组元素的起始索引位置,参数length为要几个元素

System.out.println(str);

System.out.println(str2);

}

}

结果:

创建String对象,把字符串数组元素作为字符串的内容

char[] chs = new char[]{'a','b','c','d','e'};

String s4= new String(chs); //创建String对象,把数组元素作为字符串的内容

String s5 = new String(chs, 0, 3);//创建String对象,把一部分数组元素作为字符串的内容,

//参数offset为数组元素的起始索引位置,参数count为要几个元素

System.out.println(s4);

System.out.println(s5);

结果:

创建String对象str,字符串内容为sre,判断是否与已存在字符串ss相等,

String ss="sre";

String str=new String("sre");

System.out.println(ss.equals(str));

结果为true,String类进堆,优先创建内存,然后调用内容相同已经有的字符串地址,不会再开新的内存,节省空间

String类中的方法查找

packagecom.oricle.String1;public classDemo1 {public static voidmain(String[] args) {//TODO Auto-generated method stub

char[] ch={'a','b','c','d','e'};

String str=newString(ch);

System.out.println(str);int len=str.length();

System.out.println(len);//截取

String s1=str.substring(2);//从起始位置一直截取到最后

System.out.println(s1);//总起始位置截取到结束位置(包头不包尾,顺序不能乱)

System.out.println(str.substring(2, 4));//检索开头字母

String st="IloveJava";

String s2="Il";

String s3="Java";

System.out.println(st.startsWith(s2));//开头

System.out.println(st.endsWith(s3));//结尾//判断字符串中是否包含子字符串

String s4="i love java java";

String s5="java";

System.out.println(s4.contains(s5));//indexof 如果没有该字符串则返回-1

System.out.println(s4.indexOf(s5));//将字符串转成字节/字符数组

String s6="你是人则很难";/*byte[] b1=s6 .getBytes();

for(int i=0;i

System.out.print(b1[i]+"");

}

char[]c1=s6.toCharArray();

for(int i=0;i

System.out.println(c1[i]+"");

}*/

for(int i=0;i

System.out.print(b1[i]+"");char[]c1=s6.toCharArray();

System.out.println(c1[i]+"");

}//判断字符串内容是否相同

String s8="Oricle";

String s9="oricle";

System.out.println(s8.equals(s9));

System.out.println(s8.equalsIgnoreCase(s9));//tostring

System.out.println(s8.toString());//tolowercase

System.out.println(s8.toLowerCase());//touppercase

System.out.println(s9.toUpperCase());

}

}

练习题目:

packagecom.oricle.String1;public classDemo1 {public static voidmain(String[] args) {//TODO Auto-generated method stub

getnum("ORIclee12345");

getword("fainlFAF");

getci();

}//1.获取指定字符串中,大写字母、小写字母、数字的个数。

public static voidgetnum(String str){int big=0,

small=0,

number=0;//String s10="ORIcle1234";//char[]c2=s10.toCharArray();

for(int i=0;i

if (c>='A' && c<='Z') {

big++;

}else if (c>='a' && c<='z') {

small++;

}else if (c>='0' && c<='9') {

number++;

}

}

System.out.println("大写字母个数:"+big);

System.out.println("小写字母个数:"+small);

System.out.println("数字个数:"+number);

}//将字符串中,第一个字母转换成大写,其他字母转换成小写,并打印改变后的字符串

public static voidgetword(String str){

String head=str.substring(0,1);

String body=str.substring(1);

String neww=head.toUpperCase()+body.toLowerCase();

System.out.println(neww);

}//查询大字符串中,出现指定小字符串的次数。如“hellojava,nihaojava,javazhenbang”中查询出现“java”的次数。

public static voidgetci(){

String s1="hellojava,nihaojava,javazhenbang";

String s2="java";int count=0;//出现次数

int index=-1;//出现位置下标

while((index=s1.indexOf(s2)) != -1){

count++;

s1=s1.substring(index+s2.length());

System.out.println(s1);

}

System.out.println(count);

}

}

object string java_Object类和String类相关推荐

  1. Java的API及Object类、String类、字符串缓存区

    Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Object:Object类是Java语言中的根类,即所有类的父类. equ ...

  2. 【Java5】String类,StringBuilder类,ArrayList类,Object类(toString,equals,hashCode)

    文章目录 1.String类:字符串常量在Java中不属于基本数据类型, 而是引用/类类型 1.1 使用:new String(...) 1.2 判断:equals函数是用来比较两个对象是否相等 1. ...

  3. Java常用类库(Object类、String类、StringBuffer类、包装类、Math类、System类)详解

    常用类库 java.lang java.lang包下放置了Java开发中常用的类和接口,所以为简化该包下类的使用,java.lang包下的类在使用时不需要导入这些类 java.lang包下常用类有: ...

  4. (JAVA)Object类之String类

    /* 字符串: 一.概述:1.字符串在JAVA中,使用""表示2.java.lang.String类3.只要写""就是字符串对象.不需要new二.空参构造器ne ...

  5. Java中Object转换为int类型或String类型

    一.判断Object的类型 下面是截取的一个判断Objec的类型,然后给Excel的单元格设置类型和添加值的操作: obj instanceof 类型 Object obj = entityMap.g ...

  6. 黑马程序员-4 String类和StringBuffer类

    ------- android培训.java培训.期待与您交流! ---------- 1,获取. 1.1 字符串中的包含的字符数,也就是字符串的长度. int length():获取长度. 1.2 ...

  7. java str2date,java date类与string类实例代码分享

    Date类用来指定日期和时间,其构造函数及常用方法如下: publicDate() 从当前时间构造日期时间对象. publicStringtoString() 转换成字符串. publiclongge ...

  8. JavaSE(七)——Scanner类、String类

    文章目录 1. Scanner类 2. String类 2.1 定义 2.2 常见转换 2.3 字符串赋值 2.4 String类的判断功能 2.5 String类的获取功能 2.6 String类的 ...

  9. Java中的Scanner类和String类

    1:Scanner的使用(了解)     (1)在JDK5以后出现的用于键盘录入数据的类. (2)构造方法: A:讲解了System.in这个东西.             它其实是标准的输入流,对应 ...

最新文章

  1. 基于 python3+nginx 的 Jupyter Notebook 服务端 ssl 访问
  2. python输入两个正整数m和n用for循环求其最大公约数_输入两个正整数,m和n,求其最大公约数和最小公倍数。...
  3. 漫谈MySQL权限安全,跳槽薪资翻倍
  4. Hyperledger Fabric学习笔记(四)- fabric单机部署 solo 版
  5. CryEngine新引擎正式开放源代码,但仅限开发游戏
  6. php mysql 正则表达式_mysql正则表达式(Regexp)的示例详解
  7. Flutter游戏:垃圾里会生蚊子
  8. centos php rpm下载源,CentOS 6.2 使用第三方yum源安装更多rpm软件包 | 系统运维
  9. 【Bug Fix】Error : Can#39;t create table #39;moshop_1.#sql-534_185#39; (errno: 150)
  10. 高级操作系统——XV6内存管理
  11. 写学术论文的一些感想
  12. java 按符号分割字符串_JAVA字符串按分隔符号字符串分割
  13. Django + MySQL + Redis 编写简单的高校求职招聘管理系统 in English(毕设+源码)
  14. 结巴分词 java_Java版结巴分词自定义词库
  15. 第十一章 第三将 项目风险管理
  16. 十年匠心,让国漫精致到羽翼丰满!《老鹰抓小鸡》幕后制作分享
  17. Jetson nano(Ubuntu18.04) 网线连接电脑,实现VNC远程桌面
  18. windows上软件上传至linux上,《如何将windows上的软件包或文件上传到linux服务上》...
  19. PhotoshopCC2019(64位)下载+安装教程
  20. 计算机自检后反复重启 主引导,电脑开机停留在商标界面-电脑一开机就停留在主板标志界面,进不了bios设置,重启也一样,怎么办?...

热门文章

  1. 各执一词,民用安防市场现状看法PK
  2. redis配置master-slave模式
  3. 今天没事做了个MBTI职业倾向测试
  4. 教你10分钟搭建酷炫的个人博客
  5. 读《现代软件工程--构建之法》所思
  6. python locust 性能测试:HOOKS钩子方法
  7. BZOJ 1193: [HNOI2006]马步距离【贪心+搜索】
  8. Link节点类的改进——通过构建freelist自行管理内存
  9. 【Java】身份证的验证
  10. Tomcat的startup.bat启动闪退解决办法