Day11 --Eclipse工具 Object对象

来源:互联网 发布:国外免费代理软件 编辑:程序博客网 时间:2024/06/05 16:28
 a.
    Eclipse工具
         请参考:G:\CSDN_Android_\JAVA\双元课堂\video\双元视频\day11 Eclipse工具 Object对象\day11\day11_source   中的eclipse介绍。
        小知识:网站后缀名的概念: .com 商业盈利团体  .org 非商业盈利团体 .cn 表示中国  .edu教育
​                

    Eclipse中如何生成jar包并导入到项目中
        什么是Jar
            jar是多个.class字节码文件所组成的压缩包。
        Jar的作用
            使用别人已经写好的.class文件。
        如何使用
            步骤:
                1) 将一个项目打包成jar文件,
                      * 打包过程:右键需要打成jar包的项目,点击explorer(导出),然后选择Java下的jar file,设置到处位置,然后一路next即可。
            
                2) 再新项目中生成一个 libs 的文件夹,然后将该jar放入该文件夹中,并且要Build Path一下,因为jar中都是.class文件,如果不Build Path一下,这些.class文件就不能加载到新项目的路径中。所以必须复制后Build Path一下才能使用。         


    Eclipse中如何删除项目和导入项目
        删除项目
            一是在项目区域中不出现了和二是在整个硬盘中不出现了,二者的区别就在于是否在确认删除前勾选 Delete project contents on disk(cannot to undone) 删除磁盘上的项目内容(不能取消)。 如果勾选了就从硬盘上直接删除了(不走回收站),如果不勾选只是在该项目区域中删除了,在该eclipse的工作空间下还存在。
    
        导入项目
            如果想在这个项目区域中还继续使用已经删除的项目(不是真正意义上的删除项目)的话,在eclipse的  PackageExplorer(包资源管理器视窗,即项目结构) 空白处右键,选择import(导入) > General下的Existing Projects into Workspace(现有项目到工作空间) > Browse(浏览)找到项目的位置 > 最后Finsh
    
    Eclipse中的快捷键
        alt + ↓ 或 ↑          向下或向上移动某一行代码
        ctrl +alt + ↓ 或 ↑     向下或向上复制某一行代码


    Eclipse中断点调试的基本使用
        Debug作用
            * 用于调试程序。
            * 查看程序执行流程。
        如何查看执行流程:
            什么是断点:
                就是一个标记,用于标记从代码的哪一行开始。
            如何设置断点:
                你想看哪个程序的代码,就在哪一行的代码最前(显示行数的位置)上双击两下,就会在行号的前面出现绿色 点点。
            在哪里设置断点:
                你需要看哪一行的代码,就从哪开始。 具体在方法有效的第一行语句上开始,包括第一行。
            如何运行设置断点后的程序:
                右键 > Debug as > Java Application 出现一个对话框后直接Yes,就能跳转到Debug视窗了。
            看哪些地方:
                * Debug:断点测试的地方
                * 在这个地方,需要一些快捷键:
                    * F6,下一步,或者点击也可以。一次看一行的执行过程。
                    * F5,返回方法。
                    * 如果想看某个方法中的具体步骤,那么就在这个方法的第一行有效语句上点上断点。当主方法运行到该方法时,如 Change(arr);,还直接F6的话,就跳入了该方法的第一行有效语句,接着F6看这个方法的运行效果,如果当该方法执行完后,进行F6就自动跳出该方法,返回到了主方法的这个change(arr)的下一行,继续F6看下面程序的结果,一直循环下去。
                    
                * Variables:查看程序的变量变化
                * ForDemo:被查看的源文件
                * Console:控制台


b.
    API         
        概述:
            API是(Application Programming Interface)即:应用程序编程接口 的缩写。
    Java API
        * 就是java提供给我们使用的类,这些类将底层的实现过程封装起来,不需要我们关系这些类的具体实现不止,只需要知道用的时候该去哪里查找即可。    
        * 文档说明书就是存放API的工具,如:JDK_API_1_6_CN.CHM,API是具体的类,如String,Object等。


c.    
    Object对象
        概述
            * 所有类都直接或间接的继承这个类。
            * 类层次结构的根类。
        构造方法
            public Object(){}
            这就是为什么说:子类中的构造方法默认访问的是父类中的无参构造,因为该Object是所有类的父类即超类。
    
        Object类的hashCode()方法
            作用
                * 返回该对象的哈希值,返回的是一个int类型的值。
            意义
                * public int hashCode(){}
                * 返回该对象的哈希码值,用int来接收,默认情况下,该方法会根据对象的地址来计算的,
                * 不同对象(即new出来)的,hashCode()一般都不同,可以也会相同,但是用int来接收的话,该值一旦超过了int的取值范围,那么就会返回一个相同的值。
                  但是同一个对象的 hashCode()肯定相同,即同一对象,哈希值相同。
                        Student st1 = new Student("hhaa",3);
                        Student st2 = new Student("ha",4);
                        s1.hashCode()和s2.hashCode() 哈希值不同,因为new出来了2个对象,且地址值不同。因为哈希值是根据对象的地址值来计算的。
        
       Object类的getClass()方法
            作用
                * 用于返回此对象Object的运行时类,即返回Class类,即字节码文件。可以通过该Class能够拿到里面具体的属性和方法,如:name,age属性, 普通方法等。
            意义
                * 在反射中掌握使用
                * public final Class getClass(){}
                * 可以通过Class类中的一个方法,获取到对象真实类的全名称。
                    * public String getName();
                    
                例子:    
                    Student st = new Student("xixi", 2);
                    Class clazz1 = st.getClass(); // 获取该对象的字节码文件
                    String name = clazz1.getName();  //   以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
                    System.out.println(name); // com.zj.day11.two.bean.Student 返回的是该类的全名称。


            Class类中的getName()方法
                * 以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。                


       Object类的toString()方法
            作用
                * 返回该对象的字符串表示    
                * toString() 可以更方便的显示属性值
                * getXXX() 为了获取值,可以显示也可以赋值,或做其他操作
            意义
                * public String toString(){}
                * 他的值等于:
                    * getClass().getName() + '@' + Integer.toHexString(hashCode())
                    
                * 由于默认情况下的Object的toString()方法数据没有意义,所以一般建议我们在具体的类中重写该方法。
                * 建议每次写完JavaBean对象后,自动生成一个toString方法


​        
       Object类的equals()方法
            作用
                * 指示某个对象是否与此对象 “相等”
            意义
                * 默认情况下比较的是两个对象的引用(地址值)是否相等
                * 由于比较对象的引用(地址值)没有意义,所以一般重写该方法        
             equals 
                a.Object类中的equal()比较对象的地址值,没意义。【Object中equals的底层是“==”来做比较,所以         用== 还是 equals 来比较对象的地址值,都是无意义的。】
                b.在开发中我们比较的往往是【对象的属性(name,age...)】,判断是否相等,这时我们需要重写equals方法。
                c.比较的是引用数据类型,用equals, 当比较的是基本数据类型时,只能用 == 。
    
            例子:
                前提:Student类中重写了equals方法。
                即:
                    public boolean equals(Object obj) {  //    相当于:s1.equals(s2);
                    Student s = (Student)obj;
                    return this.name.equals(s.name) && this.age == s.age ; //引用数据类型name用equals来比较, 基本数据类型age用 == 来比较。
                main方法中:
                    Student str1 = new Student("hh",4);
                    Student str2 = new Student("hh",4);
                    System.out.println(str1.equals(str2)); //false 因为底层采用的是 == 来作比较的。不重写该方法是没有意义的,因为比较的是地址值。
                    System.out.println(str1 == str2); // == 比较的是对象中的属性值,

面试题:  
    == 和 equals的区别:
    共同:
        * 都是用来做比较的,且返回的都是Boolean类型。
    异同:
        * == 是比较运算符,既可以比较基本数据类型,也可以比较引用数据类型,当比较基本数据类型时比较的是值,当比较引用数据类型时,比较的是地址值。
        * equals()方法是Object类中的其中一个方法,只能用于比较引用数据类型,所有的类都直接或间接的继承Object类,且都能使用Object类中方法,如果具体类没有重新Object类中的equals方法, 比较就没有意义,即equals 和 == 比较的引用数据类型无区别,重写后的equals方法比较的是对象中的属性值,补充一点,equals方法底层使用的是 == 来做比较的。

​    


​    
​    
​            
原创粉丝点击