A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 柳柳桑 黑马粉丝团   /  2015-12-25 10:39  /  10881 人查看  /  25 人回复  /   3 人收藏 转载请遵从CC协议 禁止商业使用本文


入学基础day11笔记

11.01_Java开发工具(常见开发工具介绍)(了解)
  • A:操作系统自带的记事本软件
  • B:高级记事本软件
  • C:集成开发环境 IDE
    • (Integrated Development Environment)
  • D:Eclipse和MyEclipse的区别
    • a:Eclipse是一种可扩展的开放源代码的IDE。
    • b:Eclipse的特点描述
      • 免费
      • 纯Java语言编写
      • 免安装
      • 扩展性强
    • c:MyEclipse
      • 在Eclipse基础上追加的功能性插件,对插件收费
      • 在WEB开发中提供强大的系统架构平台

  • E:下载 http://eclipse.org/
    • org是非盈利团体
  • F:安装
    • 绿色版        解压就可以使用(Eclipse)
    • 安装版 双击运行,一路next即可(JDK)
  • G:卸载
    • 绿色版        直接删除文件夹即可
    • 安装版 专业卸载软件或者控制面板添加删除程序


11.02_Java开发工具(Eclipse中HelloWorld案例以及汉化)(了解)
  • A:选择工作空间
    • 工作空间 其实就是我们写的源代码所在的目录
  • B:用Eclipse来完成一个HelloWorld案例
    • 代码以项目为基本单位
    • 创建项目
    • 创建包
    • 创建类
    • 编写代码
  • C:编译和运行
  • D:Eclipse的汉化
    • 从Eclipse3.5开始,安装目录下就多了一个dropins目录,只要将插件解压后放到到该目录即可。
    • 同理,这种方式卸载插件也是特别的方便,推荐这种方式
  • E:语法检查提示
    • 红色波浪线
      • 必须处理,否则编译通不过
    • 黄色波浪线
      • 可以不搭理他


11.03_Java开发工具(Eclipse的视窗和视图概述)(了解)
  • A:视窗 每一个基本的窗体被称为视窗
    • PackageExplorer 显示项目结构,包,类,及资源
    • Outline 显示类的结构,方便查找,识别,修改
    • Console 程序运行的结果在该窗口显示
    • Hierarchy 显示Java继承层次结构,选中类后F4
  • B:视图 是由某些视窗的组合而成的
    • Java视图
    • Debug视图

11.04_Java开发工具(Eclipse工作空间的基本配置)(掌握)
  • A:程序的编译和运行的环境配置(一般不改)
    • window -- Preferences -- Java
    • 编译环境:Compiler        默认选中的就是最高版本。
    • 运行环境:Installed JREs        默认会找你安装的那个JDK。建议配置了Java的环境变量。
    • 问题:
      • 低编译,高运行。可以。
      • 高编译,低运行。不可以。
      • 建议,编译和运行的版本一致。
  • B:如何去掉默认注释?
    • window -- Preferences -- Java -- Code Style -- Code Templates
    • 选择你不想要的内容,通过右边Edit编辑。
    • 注意:请只删除注释部分,不是注释部分的不要删除。
  • C:行号的显示和隐藏
    • 显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
    • 隐藏:把上面的动作再做一次。
  • D:字体大小及颜色
    • a:Java代码区域的字体大小和颜色:
      • window -- Preferences -- General -- Appearance -- Colors And Fonts --Java修改 -- Java Edit Text Font
    • b:控制台
      • window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
    • c:其他文件
      • window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font
  • E:窗体给弄乱了,怎么办?
    • window -- Reset Perspective
  • F:控制台找不到了,怎么办?
    • Window--Show View—Console
  • G:取消悬浮提示
    • window -- Preferences -- Java--Editor--Hovers。右边将Combined Hover勾去掉。
    • 这样代码的悬浮框就不会自动出现了。如果想看提示,将光标悬浮在代码上,按F2即可。

11.05_Java开发工具(Eclipse中内容辅助键的使用)(掌握)
  • A:Alt+/ 起提示作用
  • B:main+alt+/,syso+alt+/,给出其他提示
  • C:补充输出语句,选中需要输出的部分,alt+/选择最后一项即可
  • C:定义自己的alt + /
    • windows--perference-Java-Editor-Templates--New

11.06_Java开发工具(Eclipse中快捷键的使用)(掌握)
  • A:新建 ctrl + n
  • B:格式化 ctrl+shift+f
  • C:导入包 ctrl+shift+o
  • D:注释 ctrl+/,ctrl+shift+/,ctrl+shift+\
  • E:代码上下移动 选中代码alt+上/下箭头
  • F:查看源码 选中类名(F3或者Ctrl+鼠标点击)
  • G:查找具体的类 ctrl + shift + t
  • H:查找具体类的具体方法 ctrl + o
  • I:给建议 ctrl+1,根据右边生成左边的数据类型,生成方法
  • J:删除代码 ctrl + d
  • K:抽取方法alt + shift + m
  • L:改名alt + shift + r


11.07_Java开发工具(Eclipse中如何提高开发效率)(掌握)
  • alt + shift + s
  • A:自动生成构造方法
  • B:自动生成get/set方法

11.08_Java开发工具(Eclipse中一个标准学生类及其测试)(掌握)
  • A:案例演示
    • 用Eclipse实现标准学生类及其测试

11.09_Java开发工具(Eclipse中接口抽象类具体类代码体现)(掌握)
  • A:案例演示
    • 用Eclipse实现接口抽象类具体类代码

11.10_Java开发工具(Eclipse中如何生成jar包并导入到项目中)(了解)
  • A:jar是什么?
    • jar是多个class文件的压缩包。
  • B:jar有什么用?
    • 用别人写好的东西
  • C:打jar包
    • 选中项目--右键--Export--Java--Jar--自己指定一个路径和一个名称--Finish
  • D:导入jar包
    • 复制到项目路径下并添加至构建路径。

11.11_Java开发工具(Eclipse中如何删除项目和导入项目)(掌握)
  • A:删除项目
    • 选中项目 – 右键 – 删除
      • 从项目区域中删除
      • 从硬盘上删除

  • B:导入项目
    • 在项目区域右键找到import
    • 找到General,展开,并找到
    • Existing Projects into Workspace
    • 点击next,然后选择你要导入的项目
    • 注意:这里选择的是项目名称

11.12_Java开发工具(Eclipse中断点调试的基本使用)(了解)
  • A:Debug的作用
    • 调试程序
    • 查看程序执行流程
  • B:如何查看程序执行流程

    • 什么是断点:

      • 就是一个标记,从哪里开始。
    • 如何设置断点:

      • 你想看哪里的程序,你就在那个有效程序的左边双击即可。
    • 在哪里设置断点:

      • 哪里不会点哪里。
      • 目前:我们就在每个方法的第一条有效语句上都加。
    • 如何运行设置断点后的程序:

      • 右键 -- Debug as -- Java Application
    • 看哪些地方:

      • Debug:断点测试的地方
        • 在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
      • Variables:查看程序的变量变化
      • ForDemo:被查看的源文件
      • Console:控制台
    • 如何去断点:

      • a:再次双击即可
      • b:找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。

11.13_Java开发工具(Eclipse查看Java中参数传递问题)(了解)
  • A:断点演示
    • 断点查看Java中参数传递问题

11.14_常见对象(API概述)(了解)
  • A:API(Application Programming Interface)
    • 应用程序编程接口
  • B:Java API
    • 就是Java提供给我们使用的类,这些类将底层的实现封装了起来,
    • 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。

11.15_常见对象(Object类的概述)(了解)
  • A:Object类概述
    • 类层次结构的根类
    • 所有类都直接或者间接的继承自该类
  • B:构造方法
    • public Object()
    • 回想面向对象中为什么说:
    • 子类的构造方法默认访问的是父类的无参构造方法

11.16_常见对象(Object类的hashCode()方法)(了解)
  • A:案例演示
    • public int hashCode()
    • a:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
    • b:不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。

11.17_常见对象(Object类的getClass()方法)(在反射的时候掌握)
  • A:案例演示
    • public final Class getClass()
    • a:返回此 Object 的运行时类。
    • b:可以通过Class类中的一个方法,获取对象的真实类的全名称。
      • public String getName()

11.18_常见对象(Object类的toString()方法)(掌握)
  • A:案例演示
    • public String toString()
    • a:返回该对象的字符串表示。
    1. public Stirng toString() {
    2.     return name + "," + age;
    3. }
    复制代码

    • b:它的值等于:
      • getClass().getName() + "@" + Integer.toHexString(hashCode())
    • c:由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。
  • B:最终版
    • 自动生成

11.19_常见对象(Object类的equals()方法)(掌握)
  • A:案例演示
    • a:指示其他某个对象是否与此对象“相等”。
    • b:默认情况下比较的是对象的引用是否相同。
    • c:由于比较对象的引用没有意义,一般建议重写该方法。

11.20_常见对象(==号和equals方法的区别)(掌握)
  • ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
  • equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性

11.21_day11总结
  • 把今天的知识点总结一遍。

点评

shift+Enter End键 Home键 shift+End Shift+Home 这几个键也特好用,代码敲的根本停不下来  发表于 2017-7-15 18:25

25 个回复

倒序浏览
看了一下,不错啊
回复 使用道具 举报
eclipse 全是英文,好难懂
回复 使用道具 举报
完美.......
回复 使用道具 举报
完美!~~~~~~~
回复 使用道具 举报
超级棒!终于可以实现自己的报复了
回复 使用道具 举报
我们一直在努力。。。。。。
回复 使用道具 举报
yc01 中级黑马 2016-3-14 22:53:35
8#
继续努力自学中
回复 使用道具 举报
学习了,楼主整理的很详细呀,顶一个。
回复 使用道具 举报
工具快捷键不好记
回复 使用道具 举报
有种鸟枪换炮的感觉
回复 使用道具 举报
学习 学习
回复 使用道具 举报
1925016250 来自手机 初级黑马 2016-4-1 17:23:46
13#
收藏。还有没有别的呢基础
回复 使用道具 举报
lx610 中级黑马 2016-5-14 10:45:03
14#
课件附带的Eclipse,在64位的电脑上不能运行。有解决办法吗?
回复 使用道具 举报
没有64位的eclipse下载吗
回复 使用道具 举报
没有64位的eclipse下载吗
回复 使用道具 举报
不错不错,尽管我有,但还是要赞一个
回复 使用道具 举报
1、程序的编译和运行的环境配置
程序的编译和运行的环境配置(一般不改)
        window -- Preferences -- Java
        编译环境:Compiler        默认选中的就是最高版本。
        运行环境:Installed JREs        默认会找你安装的那个JDK。建议配置了Java的环境变量。
问题:
低编译,高运行。可以。
高编译,低运行。不可以。
        建议,编译和运行的版本一致。
2、如何去掉默认注释?
        window -- Preferences -- Java -- Code Style -- Code Templates
        选择你不想要的内容,通过右边Edit编辑。
        注意:请只删除注释部分,不是注释部分的不要删除。
               
3、行号的显示和隐藏
        显示:在代码区域的最左边的空白区域,右键 -- Show Line Numbers即可。
        隐藏:把上面的动作再做一次。
               
4、字体大小及颜色
        a:Java代码区域的字体大小和颜色:
                window -- Preferences -- General -- Appearance -- Colors And Fonts -- Java修改 -- Java Edit Text Font
        b:控制台
                window -- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Console font
        c:其他文件
                window -- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- Text Font
               
5、窗体给弄乱了,怎么办?
        window -- Reset Perspective
               
6、控制台找不到了,怎么办?
        Window--Show View—Console






6、内容辅助键
•        Alt+/ 起提示作用
•        main+alt+/,sout+alt+/,给出其他提示
常用快捷键
•        格式化  ctrl+shift+f
•        导入包  ctrl+shift+o
•        注释  ctrl+/,ctrl+shift+/,ctrl+shift+\
•        代码上下移动 选中代码alt+上/下箭头
•        查看源码  选中类名(F3或者Ctrl+鼠标点击)

7、自动生成构造方法
                a:无参构造方法 在代码区域右键--source--Generate Constructors from Superclass
                b:带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish
8、自动生成get/set方法
                在代码区域右键--source--Generate Getters and Setters...

9、继承抽象类,或者实现接口
                a:以前做法 先写类,然后在类中在去继承类或者实现接口
                b:现在做法 在创建类的时候,选择要继承的类或者实现的接口。
                Object是所有类的父类,所有类都直接或者间接的继承自Object。

10、Eclipse中如何制作帮助文档
        针对源程序添加文档注释
        选中项目--右键--Export--Java--Javadoc—Finish

11、Eclipse中打jar包并使用jar包
        jar是什么?
•        jar是多个class文件的压缩包。
        jar有什么用?
•        用别人写好的东西
        打jar包
•        选中项目--右键--Export--Java--Jar--自己指定一个路径和一个名称--Finish
        使用jar包
•        复制到项目路径下并添加至构建路径。

12、Eclipse中几个常见小问题
        如何查看项目所在路径
•        选中 -- 右键 -- Properties -- Resource -- Location
        导入项目要注意的问题
•        项目区域中不可能出现同名的项目(新建或者导入)
•        自己随意建立的文件夹是不能作为项目导入的
        修改项目问题
•        不要随意修改项目名称
•        如果真要修改,不要忘记了配置文件.project中的
•        <name>把这里改为你改后的名称</name>

13、Eclipse中代码的高级(Debug)调试
断点:就是一个标记,表示从哪里开始看程序
A:如何设置断点
        在语句的最左边,双击即可。
B:在哪里加
        现在:在每一个方法的第一条有效语句上加。
        以后:哪里不会加哪里。
C:怎么运行断点的程序
        在代码区域--右键--Debug as--Java Appliaction

        弹出一个界面:问你是否需要打开断点界面。并问你是否需要记录。
        是(Yes),是(选中复选框)。
D:弹出了断点界面
        a:点哪里
        Step Over:跳过一行
        F6:看到每一行的执行过程。
        b:看哪里
        看源代码:对照看程序的执行步骤
        看Debug界面:对照看程序的执行步骤
        看变量界面:看变量的产生,赋值,及消失。
E:如何去除断点
        a:把添加的动作再做一遍
        b:一键清除版
                选择Debug界面--breakPoints--Remove All... 带两个x的

14、Object:类
Object:类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。
* 每个类都直接或者间接的继承自Object类。

15、 Object类的方法:
15.1 hashCode()
           public int hashCode():返回该对象的哈希码值。
*                 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值。你可以理解为地址值。
15.2 getClass()
*                public final Class getClass():返回此 Object 的运行时类

15.3 Class类的getName()方法:
*                        public String getName():以 String 的形式返回此 Class 对象所表示的实体
                                                     ( 打的结果是全路径和类名)



代码:       
public class StudentTest {
        public static void main(String[] args) {
                Student s1 = new Student();
                System.out.println(s1.hashCode()); // 11299397
                Student s2 = new Student();
                System.out.println(s2.hashCode());// 24446859
                Student s3 = s1;
                System.out.println(s3.hashCode()); // 11299397
                System.out.println("-----------");

                Student s = new Student();
                Class c = s.getClass();
                String str = c.getName();
                System.out.println(str); // cn.itcast_01.Student
               
                //链式编程
                String str2  = s.getClass().getName();
                System.out.println(str2);
        }
}

15.4  toString()方法
package cn.itcast_02;

/*
* public String toString():返回该对象的字符串表示。其值相当于:
                public static String toHexString(int i):把一个整数转成一个十六进制表示的字符串
        (Integer类下的一个静态方法:)

* 这个信息的组成我们讲解完毕了,但是这个信息是没有任何意义的。所以,建议所有子类都重写该方法。
* 怎么重写呢?
*                 把该类的所有成员变量值组成返回即可。
* 重写的最终版方案就是自动生成toString()方法。
*
* 注意:
*          直接输出一个对象的名称,其实就是调用该对象的toString()方法。
*/





package cn.itcast_02;

public class Student {
        private String name;
        private int age;

        public Student() {
                super();
        }

        public Student(String name, int age) {
                super();
                this.name = name;
                this.age = 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;
        }

        @Override
        public String toString() {
                return "Student [name=" + name + ", age=" + age + "]";
        }

        // @Override
        // public String toString() {
        // // return super.toString();
        // // return "hello";
        // return "姓名:" + name + ",年龄:" + age;
        // }
       
       
}
public class StudentDemo {
        public static void main(String[] args) {
                Student s = new Student();
                System.out.println(s.hashCode());
                System.out.println(s.getClass().getName());
                System.out.println("--------------------");
                System.out.println(s.toString());// cn.itcast_02.Student@42552c
                System.out.println("--------------------");
                // toString()方法的值等价于它
                // getClass().getName() + '@' + Integer.toHexString(hashCode())
                // this.getClass().getName()+'@'+Integer.toHexString(this.hashCode())

                // cn.itcast_02.Student@42552c
                // cn.itcast_02.Student@42552c

                System.out.println(s.getClass().getName() + '@'
                                + Integer.toHexString(s.hashCode()));

                System.out.println(s.toString());

                // 直接输出对象的名称
                System.out.println(s);
        }
}

15.5   equals()方法
package cn.itcast_03;

/*
* public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
* 这个方法,默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们要重写该方法。
* 怎么重写呢?
*                 一般都是用来比较对象的成员变量值是否相同。
* 重写的代码优化:提高效率,提高程序的健壮性。
* 最终版:
*                 其实还是自动生成。
*
* 看源码:
*                 public boolean equals(Object obj) {
*                         //this - s1
*                         //obj - s2
*               return (this == obj);
*           }
*
* ==:
*                 基本类型:比较的就是值是否相同
*                 引用类型:比较的就是地址值是否相同
* equals:
*                 引用类型:默认情况下,比较的是地址值。
*                 不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同
*/
public class StudentDemo {
        public static void main(String[] args) {
                Student s1 = new Student("林青霞", 27);
                Student s2 = new Student("林青霞", 27);
                System.out.println(s1 == s2); // false
                Student s3 = s1;
                System.out.println(s1 == s3);// true
                System.out.println("---------------");

                System.out.println(s1.equals(s2)); // obj = s2; //false
                System.out.println(s1.equals(s1)); // true
                System.out.println(s1.equals(s3)); // true
                Student s4 = new Student("风清扬",30);
                System.out.println(s1.equals(s4)); //false
               
                Demo d = new Demo();
                System.out.println(s1.equals(d)); //ClassCastException

        }
}

class Demo {}

package cn.itcast_03;

public class Student {
        private String name;
        private int age;

        public Student() {
                super();
        }

        public Student(String name, int age) {
                super();
                this.name = name;
                this.age = 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;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                Student other = (Student) obj;
                if (age != other.age)
                        return false;
                if (name == null) {
                        if (other.name != null)
                                return false;
                } else if (!name.equals(other.name))
                        return false;
                return true;
        }
       



//        @Override
//        public boolean equals(Object obj) {
//                // return true;
//                //这里要改进,根据这里比较的成员变量来决定返回true还是false
//                //这里其实要比价的就是name和age
//                //但是,name是String类型的,而String是引用类型的,所以,在这里不能直接用==比较,应该用equals()比较
//                //String的equals()方法是重写自Object类的,比较的是字符串的内容是否相同
//                //this -- s1
//                //obj -- s2
//                //我们要使用的是学生类的特有成员变量,所以要向下转型
//                Student s = (Student)obj; //s -- obj -- s2;
//                if(this.name.equals(s.name) && this.age == s.age) {
//                        return true;
//                }else {
//                        return false;
//                }
//        }
       
//        @Override
//        public boolean equals(Object obj) {
//                //为了提高效率
//                if(this == obj){
//                        return true;
//                }
//               
//                //为了提供程序的健壮性
//                //我先判断一下,obj是不是学生的一个对象,如果是,再做向下转型,如果不是,直接返回false。
//                //这个时候,我们要判断的是对象是否是某个类的对象?
//                //记住一个格式:对象名 instanceof 类名
//                //表示:判断该对象名是否是该类名一个对象
//                if(!(obj instanceof Student)){
//                        return false;
//                }
//                //如果是就继续
//               
//                Student s = (Student)obj;
//                //System.out.println("同一个对象,还需要向下转型并比较吗?");
//                return this.name.equals(s.name) && this.age == s.age;
//        }
       
       
}
15.6  常见对象(Object类的finalize()方法和clone()方法)
package cn.itcast_04;

public class Student implements Cloneable {
        private String name;
        private int age;

        public Student() {
                super();
        }

        public Student(String name, int age) {
                super();
                this.name = name;
                this.age = 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;
        }
       
        @Override
        protected Object clone() throws CloneNotSupportedException {
                return super.clone();
        }
}







package cn.itcast_04;

/*
*        protected void finalize():当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。用于垃圾回收,但是什么时候回收不确定。
*        protected Object clone():创建并返回此对象的一个副本。
*                A:重写该方法
*
*  Cloneable:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。
*          这个接口是标记接口,告诉我们实现该接口的类就可以实现对象的复制了。
*/
public class StudentDemo {
        public static void main(String[] args) throws CloneNotSupportedException {
                //创建学生对象
                Student s = new Student();
                s.setName("林青霞");
                s.setAge(27);
               
                //克隆学生对象
                Object obj = s.clone();
                Student s2 = (Student)obj;
                System.out.println("---------");
               
                System.out.println(s.getName()+"---"+s.getAge());
                System.out.println(s2.getName()+"---"+s2.getAge());
               
                //以前的做法
                Student s3 = s;
                System.out.println(s3.getName()+"---"+s3.getAge());
                System.out.println("---------");
               
                //其实是有区别的
                s3.setName("刘意");
                s3.setAge(30);
                System.out.println(s.getName()+"---"+s.getAge());
                System.out.println(s2.getName()+"---"+s2.getAge());
                System.out.println(s3.getName()+"---"+s3.getAge());
               
        }
}


16、总结
1:Eclipse的概述使用(掌握)
        请参照ppt和课堂练习.txt
       
2:API的概述(了解)
        (1)应用程序编程接口。
        (2)就是JDK提供给我们的一些提高编程效率的java类。

3:Object类(掌握)
        (1)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。
        (2)Object类的构造方法有一个,并且是无参构造
                这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造
        (3)要掌握的方法:
                A:toString()
                        返回对象的字符串表示,默认是由类的全路径+'@'+哈希值的十六进制表示。
                        这个表示其实是没有意义的,一般子类都会重写该方法。
                        如何重写呢?过程我也讲解过了,基本上就是要求信息简单明了。
                        但是最终还是自动生成。
                B:equals()
                        比较两个对象是否相同。默认情况下,比较的是地址值是否相同。
                        而比较地址值是没有意义的,所以,一般子类也会重写该方法。
                        重写过程,我也详细的讲解和分析了。
                        但是最终还是自动生成。
        (4)要了解的方法:
                A:hashCode() 返回对象的哈希值。不是实际地址值,可以理解为地址值。
                B:getClass() 返回对象的字节码文件对象,反射中我们会详细讲解       
                C:finalize() 用于垃圾回收,在不确定的时间
                D:clone() 可以实现对象的克隆,包括成员变量的数据复制,但是它和两个引用指向同一个对象是有区别的。
        (5)两个注意问题;
                A:直接输出一个对象名称,其实默认调用了该对象的toString()方法。
                B:面试题
                        ==和equals()的区别?
                        A:==
                                基本类型:比较的是值是否相同
                                引用类型:比较的是地址值是否相同
                        B:equals()
                                只能比较引用类型。默认情况下,比较的是地址值是否相同。
                                但是,我们可以根据自己的需要重写该方法。
回复 使用道具 举报
这是导师笔记啊
回复 使用道具 举报
完美,太爱你了
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马