Java学习总结5

本文详细介绍了Java中的Object类,包括toString()、equals()和clone()方法;Scanner类用于文本扫描;重点讲解了String类的特性和各种方法,如获取、转换、判断功能;还提到了StringBuffer的使用,并简单介绍了Integer类的转换方法。
摘要由CSDN通过智能技术生成

1.Object类

        Object是类Object结构的根。 每个类都有Object作为超类(父类).
        常用的功能:大部分常用类已经将这些功能重写了
                 public final Class getClass():表示正在运行的类的实例   (当前类的字节码文件对象)
                public int hashCode():哈希码值,把它可以看成是一个"地址值",不是真实意义的地址值,和哈希表有关,不同的对象,哈希码值不同.
        获取一个类的字节码文件对象的方式有几种?
                1)Object的方法 public final Class getClass()
                2)任意Java类型的class属性

/*class Demo{

}*/
public class ObjectDemo {
    public static void main(String[] args) {
   // Demo demo = new Demo() ;
     //   System.out.println(demo.getClass()) ;
        //创建两个学生对象
        Student s1 = new Student() ;
        Student s2 = new Student() ;
        //System.out.println(s1) ;
        //System.out.println(s2) ;
        Class c1 = s1.getClass() ;
        Class c2 = s2.getClass() ;

        System.out.println("-----------------------------------");
        // public String getName()
        String name1 = c1.getName();
        String name2 = c2.getName();
        System.out.println(name1+"----"+name2);

        System.out.println(c1) ;//包名.类名
        System.out.println(c2) ;
        System.out.println(s1==s2) ;//分别需要开辟空间
        System.out.println(c1==c2) ; //因为类就加载一次,产生的字节码文件就一个

        System.out.println("----------------------------------") ;
        //另一种方式也可以获取字节码文件对象
        //任意Java类型的class属性(自定义的类/jdk提供类)
        Class c3 = Student.class ;
        System.out.println(c3);
        System.out.println(c3==c2);
        System.out.println("----------------------------------") ;

        int i = s1.hashCode();
        int i2 = s2.hashCode();
        System.out.println(i);
        System.out.println(i2);

        System.out.println("高圆圆".hashCode()) ;
        System.out.println("张少华".hashCode());
    }
}

1.1 public String toString()

        返回对象的字符串表示形式
        应该是一个简明扼要的表达,容易让人阅读.创建对象,输出对象名称.打印出来的对象的地址值,没有意义;应该看到的是当前这个对象的成员信息表达式.建议所有子类覆盖此方法.

 1.2 public boolean equals(Object obj)

        指示其他对象与此对象是否"相等"
        ==和equals的区别:
                ==:连接的是基本数据类型:比较的基本数据类型数据值是否相等
                        int a= 10 ;
                        int b = 20 ;
                        a==b ;
                ==:连接的是引用数据类型,比较的是引用数据类型的地址值是否相同
               equals:默认比较的是地址值是否相同,建议子类重写equals方法,比较他们内容是否相同(成员信息是否相同).
                在重写equals方法的同时,还需要重写hashCode()方法,保证哈希码值必须一样,才能比      较equals.
                大部分的常用类都会重写Object类的equals方法.

1.3 protected Object clone() throws CloneNotSupportedException

        调用过程中可能存在克隆不支持的异常
        对于jdk提供的类的方法本身存在异常.谁调用这个方法,必须做出处理,否则报错,最简单的方式继续往上抛 throws

2.Scanner类

文本扫描器
        构造方法
        public Scanner(InputStream source)
        成员方法:
                判断功能 haxNextXXX():判断下一个录入都是是否是XXX类型
                public boolean hasNextInt():
                public boolean hasNextLine().
                获取功能    nextXXX()
                                  public int nextInt()
                                  public String nextLine()
                                  public String next()

public class ScannerDemo {

    public static void main(String[] args) {

        //public Scanner(InputStream source):形式参数时候一个抽象类,需要有子类对象
        //System类中存在一个"标准输入流"in
        //public static final InputStream in
        InputStream inputStream = System.in ; //字节输入流


        //创建键盘录入对象
        Scanner sc = new Scanner(inputStream) ;

        System.out.println("录入一个数据:");



       /* int num = sc.nextInt(); //获取功能
        System.out.println(num);*/
        //java.util.InputMismatchException:录入的数据和需要接收的num类型不匹配
        //Scanner类的提供的判断功能
        if(sc.hasNextInt()){
            //录入的int类型
            //接收int
            int num = sc.nextInt() ;
            System.out.println("您输入的数据是:"+num);
        }else if(sc.hasNextLine()){
            //录入的String
            String line = sc.nextLine() ;
            System.out.println("您输入的数据是:"+line);
        }else{
            System.out.println("对不起,没有提供其他接收的类型值...");
        }

    }
}

3.String类

        String类代表字符串
        Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值