API--Object,String,Scanner--1

来源:互联网 发布:单片机接反会 编辑:程序博客网 时间:2024/04/28 12:09

/*
* Object类: 是层次结构的根类,所有的类都直接的或者间接的继承这个类
* 构造方法:
* public Object();
*/
public class ObjectDemo {
public static void main(String[] args) {
// 创建对象
Object obj = new Object();
System.out.println(obj);
}
}

/**
* public int hashCode():返回该对象的哈希码值*
* a: 不同的对象的hashCode值不同*
*/

public class ObjectDemo2 {      public static void main(String[] args) {            // 创建学生对象        Student s1 = new Student();        Student s2 = new Student();        Student s3 = s1 ;               // 调用hashCode方法        int hashCode1 = s1.hashCode() ;        int hashCode2 = s2.hashCode() ;        int hashCode3 = s3.hashCode() ;             System.out.println(hashCode1);        System.out.println(hashCode2);        System.out.println(hashCode3);                  }} class Student {        private String name ;       private int age ;    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;    }}

/*
* public final Class getClass(): 返回此 Object 的运行时类。
* Class 类中的方法:
* public String getName(): 返回该类的全类名
*/

public class ObjectDemo3 {      public static void main(String[] args) {        //      // 创建学生对象//      Student s1 = new Student(); //      // 获取字节码文件的描述信息对象//      Class class1 = s1.getClass() ;      //      //  返回该类的全类名//      String className = class1.getName() ;       //      System.out.println(className);                  // cn.itcast.object_3.Student//          }}
  • public String toString():返回该对象的字符串表示。
  • 源代码:
  • public String toString() {
    return getClass().getName() + “@” + Integer.toHexString(hashCode());
    }
  • 打印地址值没有意义,所以我们应该复写toString()方法. 复写toString()方法的原则,是返回所有的成员变量的字符串拼接形式
    */
public class ObjectDemo4 {      public static void main(String[] args) {                // 创建学生对象        Student s = new Student();          // 给成员变量赋值        s.setName("小明");        s.setAge(24) ;              // 调用toString()方法        String result =  s.toString() ;             // 输出         System.out.println(result);        // cn.itcast.object_4.Student@19bb25a        System.out.println(s.toString());               // 默认调用toString方法        System.out.println(s);              // String result2 =  s.getClass().getName() + "@" + Integer.toHexString(s.hashCode()) ;        // System.out.println(result2);         }}

/*
* public boolean equals(Object obj): 比较两个对象是否相等 *
* equals方法的源代码:
* public boolean equals(Object obj) {
return (this == obj);
} *
* equals方法默认比较的是地址值,而比较地址值没有意义, 所以我们需要重写equals方法.
* 如何重写equals方法呢?
* 重写的原则是比较成员变量是否相等,如果相等我们就认为是同一个对象 *
* ==和equals的区别:
* == : ==可以用来比较基本数据类型也可以比较引用数据类型,比较引用数据类型,比较的是地址值
* equals:
* equals不能比较基本数据类型,只能引用数据类型,而比较引用数据类型,默认比较的是地址值
* 如果我们想建立自己的比较方式,我们需要重写equals方法
*/

public class ObjectDemo5 {      public static void main(String[] args) {                    // 创建两个学生对象        Student s1 = new Student("小明" , 24);        Student s2 = new Student("小明" , 24);        Student s3 = new Student("小花" , 24);                // == ,equals        System.out.println(s1 == s2);        System.out.println(s1.equals(s2));        System.out.println(s1.equals(s3));    }}

/*
* String字符串: 就是多个字符组成的一串数据
* 字符串本身也可以看做成字符数组
* 特点:
* a: 字符串字面值(比如:”abc”)也可以看成一个字符串对象
* b: 一旦被创建值就不能被改变
* 构造方法:
* public String():空构造
public String(byte[] bytes):把字节数组转成字符串
public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)
public String(char[] value):把字符数组转成字符串
public String(char[] value,int index,int count):把字符数组的一部分转成字符串
public String(String original):把字符串常量值转成字符串
获取字符串的长度:
public int length(): 获取字符串的长度
*/

public class StringDemo {       public static void main(String[] args) {                // public String():空构造        String s1 = new String();               // 输出该对象的长度        System.out.println("s1: " + s1.length());               System.out.println("------------------------------");        // public String(byte[] bytes):把字节数组转成字符串           // 创建字节数组        byte[] bytes = {97 , 98 , 99 , 100};        String s2 = new String(bytes);        // 输出该对象的长度        System.out.println("s2: " + s2.length());        System.out.println("s2: " + s2);                System.out.println("--------------------------------");             // public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串(index:表示的是从第几个索引开始, length表示的是长度)        String s3 = new String(bytes , 1 , 2);        System.out.println("s3 : " + s3.length());        System.out.println("s3 : " + s3);        System.out.println("-------------------------------");        // public String(char[] value):把字符数组转成字符串        // 定义一个字符数组        char[] chs = {'a' , 'b' , 'c' , 'd'};        String s4 = new String(chs);        System.out.println("s4 : " + s4.length());        System.out.println("s4 : " + s4);        System.out.println("-------------------------------");        // public String(char[] value,int index,int count):把字符数组的一部分转成字符串        String s5 = new String(chs , 0 , 3);        System.out.println("s5 : " + s5.length());        System.out.println("s5 : " + s5);        System.out.println("-------------------------------");        // public String(String original):把字符串常量值转成字符串        String s6 = new String("helloWorld");        System.out.println("s6 : " + s6.length());        System.out.println("s6 : " + s6);        System.out.println("-----------------------------");        String s7 = "abc";        System.out.println("s7: " + s7.length());        System.out.println("s7: " + s7);    }}``` //String s = new String(“hello”)和String s = “hello”;的区别        // 创建了两个对象:        // 首先会在堆内存中创建一个对象, 然后在方法区的字符串常量池中创建一个"Hello"对象,        // 然后将"Hello"对象复制一份,放进堆内存        // String s = new String("Hello");                // 创建了一个对象: 在方法区的字符串常量池中        // String s = "hello" ;                // ==和equals()的区别?        /*         *  == : 可以用来比较基本数据类型,也可以比较引用数据类型,比较引用数据类型,比较的是地址值         *  equals: 只能用来比较引用数据类型,默认比较的是地址值,如果我们想建立自己的一个比较方式,我们应该复写equals方法         *//* *  String类中和判断相关的一些方法: *      public boolean equals(Object obj):              比较字符串的内容是否相同,区分大小写        public boolean equalsIgnoreCase(String str):    比较字符串的内容是否相同,忽略大小写        public boolean contains(String str):            判断字符串中是否包含传递进来的字符串        public boolean startsWith(String str):          判断字符串是否以传递进来的字符串开头        public boolean endsWith(String str):            判断字符串是否以传递进来的字符串结尾        public boolean isEmpty():                       判断字符串的内容是否为空。        isEmpty()是判断字符串的内容为空,还是判断字符串这个对象为空? */<div class="se-preview-section-delimiter"></div>

这里写代码片
“`

public class StringDemo {       public static void main(String[] args) {            // 定义一个字符串        String s1 = "abcd";        String s2 = "Abcd";             // public boolean equals(Object obj):比较字符串的内容是否相同,区分大小写        System.out.println("s1.equals(s2) : " + s1.equals(s2));        System.out.println("----------------------------");        // public boolean equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写        System.out.println("s1.equalsIgnoreCase(s2): " + s1.equalsIgnoreCase(s2));        System.out.println("----------------------------");        // public boolean contains(String str):判断字符串中是否包含传递进来的字符串        // 是用来判断连续的        System.out.println("s1.contains(a): " + s1.contains("a"));        System.out.println("s1.contains(ab): " + s1.contains("ab"));        System.out.println("s1.contains(ac): " + s1.contains("ac"));        System.out.println("--------------------------------------");        //  public boolean startsWith(String str):判断字符串是否以传递进来的字符串开头        System.out.println("s1.startsWith(a): " + s1.startsWith("a"));        System.out.println("s1.startsWith(ab): " + s1.startsWith("ab"));        System.out.println("s1.startsWith(b): " + s1.startsWith("b"));        System.out.println("---------------------------------------");        // public boolean endsWith(String str): 判断字符串是否以传递进来的字符串结尾        System.out.println("s1.endsWith(d): " + s1.endsWith("d"));        System.out.println("s1.endsWith(c): " + s1.endsWith("c"));        System.out.println("----------------------------------------");        // public boolean isEmpty():判断字符串的内容是否为空。        // String s = null ;        // NullPointerException: 空指针异常        // s.isEmpty() ;        // 判断字符串的内容是否为空        String s = "hello";        String s3 = "" ;                System.out.println("s.isEmpty(): " + s.isEmpty());        System.out.println("s.isEmpty(): " + s3.isEmpty());         }}

/*
* String类中和获取相关的方法:
* public int length(): 获取字符串的长度。
public char charAt(int index): 获取指定索引位置的字符
public int indexOf(int ch): 返回指定字符在此字符串中第一次出现处的索引。
public int indexOf(String str): 返回指定字符串在此字符串中第一次出现处的索引。
public int indexOf(int ch,int fromIndex): 返回指定字符在此字符串中从指定位置后第一次出现处的索引。
public int indexOf(String str,int fromIndex): 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
lastIndexOf系列
public String substring(int start): 从指定位置开始截取字符串,默认到末尾。
public String substring(int start,int end): 从指定位置开始到指定位置结束截取字符串。
*/

public class StringDemo {       public static void main(String[] args) {                // 定义一个字符串        String s = "helloworldjava";                //public int length():  获取字符串的长度。        System.out.println("s.length(): " + s.length());        System.out.println("------------------------");        // public char charAt(int index):获取指定索引位置的字符        char ch = s.charAt(0);        System.out.println(ch);        // java.lang.StringIndexOutOfBoundsException: 字符串角标越界异常        // 因为我们访问了不存在的索引        // System.out.println(s.charAt(-1));        System.out.println("------------------------");        // public int indexOf(int ch):  返回指定字符在此字符串中第一次出现处的索引。        System.out.println("s.indexOf(97): " + s.indexOf(97));        System.out.println("s.indexOf('a'): " + s.indexOf('a'));        System.out.println("------------------------");        // public int indexOf(String str):  返回指定字符串在此字符串中第一次出现处的索引。        // "helloworldjava"        System.out.println(s.indexOf("owo"));        System.out.println(s.indexOf("li"));  //没有找到就返回-1        System.out.println("------------------------");        // public int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。        System.out.println(s.indexOf('a', 12));        System.out.println("------------------------");        // public int indexOf(String str,int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。        System.out.println(s.indexOf("l", 5));        System.out.println("-------------------------");        // 可以顺带提一下lastIndexOf系列        System.out.println(s.lastIndexOf('a'));        System.out.println("-------------------------");        // "helloworldjava"        // public String substring(int start):从指定位置开始截取字符串,默认到末尾。        String s2 = s.substring(5) ;        System.out.println("s2 : " + s2);        System.out.println("s : " + s);        System.out.println("-------------------------");        // public String substring(int start,int end):  从指定位置开始到指定位置结束截取字符串。        // 包含头不包含尾        String s3 =  s.substring(0, 4);        System.out.println(s3);         }}
0 0
原创粉丝点击