No_16_0303 Java基础学习第十一天

文档版本 开发工具 测试平台 工程名字 日期 作者 备注
V1.0 2016.03.03 lutianfei none


Eclipse的概述

  • Eclipse是一种可扩展的开放源代码的IDE。
  • Eclipse的特点描述
    • 免费
    • 纯Java语言编写
    • 免安装
    • 扩展性强

MyEclipse概述

  • 在Eclipse基础上追加的功能性插件,对插件收费
  • 在WEB开发中提供强大的系统架构平台

Eclipse的基本使用

HelloWorld案例

  • 1、File-> New ->Project 选Java Project

  • 2、 命名工程后选择Finish

  • 3、 新建一个包

  • 4、新建一个类

  • 5、 编译

    • 自动编译,在保存的那一刻帮你做好了
  • 6、运行

    • 点击虫子后面的绿色内在三角形按钮
    • 点击Run菜单下的run。也可以使用快捷键Ctrl+F11
    • 选择要运行的文件或者在要运行的文件内容中
    • 一般情况下:右键 – Run as - Java Application即可
    • 看到Console即可,它就是Eclipse自带的控制台

源代码语法检查

  • 红色波浪线 :错误的源代码
  • 黄色波浪线 :未使用的成员或有安全隐患的成员

大纲视窗的使用

  • 根据大纲视窗中的不同图标,判断不同的变量状态。

  • 选中某个类后按F4可以看到=该类的继承状态。

基本环境设置

字体颜色和大小
  • 代码区:
    window -> Preferences -> General -> Appearance -> Colors And Fonts -> Java Edit Text Font
  • 控制台:
    Debug -> Console font

  • 其他文件
    Basic -> Text Font

窗口还原

window ->Perspective-> Reset Perspective

控制台还原

WindowShow ViewConsole

常用快捷键

  • 内容辅助键

    • Alt+/ 起提示作用
    • main+alt+/,syso+alt+/,给出其他提示
  • 格式化 ctrl+shift+f

  • 导入包 ctrl+shift+o
  • 单行注释 ctrl+/
  • 多行注释: ctrl+shift+/
  • 多行去注释:ctrl+shift+\
  • 代码上下移动 选中代码alt+上/下箭头
  • 查看源码 选中类名(F3或者Ctrl+鼠标点击)

提高开发效率的快捷键

  • 自动生成构造方法
    • 无参构造方法 :Alt + Shift+s+c
    • 带参构造方法 : Alt + Shift+s+o
  • 自动生成get/set方法 : Alt + Shift+s+r

  • 继承抽象类,或者实现接口

    • 如下设置可将重写方法模板直接给出
  1. package cn.itcast_03;
  2. public class Cat extends Animal {
  3. @Override
  4. public void eat() {
  5. // TODO Auto-generated method stub
  6. System.out.println("Hello Cat");
  7. }
  8. }
  • 注:这里@Overide是注解的意思,即这个方法是重写父类的,如果和父类名字不一致就会报错。

生成jar包并使用jar包

  • jar是什么?
    • jar是多个class文件的压缩包。
  • jar有什么用?
    • 用别人写好的东西
  • 打jar包
    • 选中项目–右键–ExportJavaJar–自己指定一个路径和一个名称–Finish
      • step1:
      • step2:
      • step3:
  • 使用jar包
    • 复制到项目路径下并添加至构建路径。
      • step1:
      • step2:


Eclipse中如何制作帮助文档

  • 选中项目–右键–Export–Java–Javadoc—Finish

删除项目和导入项目

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

修改项目名称

  • 除了项目文件夹名字要修改,不要忘记了配置文件.project中的

高级(Debug)调试

  • 单步调试:F6

  • 断点查看基本数据类型和引用数据类型的参数传递问题

Object类

Object类的成员方法

  • public int hashCode()

    • A:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
    • B:不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
    • C:不是对象的实际地址值,可以理解为逻辑地址值
  • public final Class getClass()
    返回此 Object 的运行时类

    • A:返回此 Object 的运行时类。
    • B:可以通过Class类中的一个方法,获取对象的真实类的全名称。

      • eg:
        1. Student s = new Student();
        2. Class c = s.getClass();
        3. String str = c.getName();
        4. System.out.println(str); // cn.itcast_01.Student
        5. //链式编程
        6. String str2 = s.getClass().getName();
        7. System.out.println(str2);
  • public String toString(): 返回该对象的字符串表示,默认是全路径+@+哈希值的十六进制表示。

    • 其返回值等价于:getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
      • toHexStringInteger类下的一个静态方法:把一个整数转成一个十六进制表示的字符串
    • eg:

      1. //两行代码结果一致
      2. System.out.println(s.getClass().getName() + '@'
      3. + Integer.toHexString(s.hashCode()));
      4. System.out.println(s.toString());
    • 注:直接输出一个对象的名称,其实就是调用该对象的toString方法。

  • public boolean equals (Object obj) : 指示其他某个对象是否与此对象“相等”。

    • 默认情况下比较的是地址值。
  • protected void finalize(): 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。用于垃圾回收,但是什么时候回收不确定。

  • protected Object clone():创建并返回此对象的一个副本

    • Cloneable:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。这个接口是标记接口,告诉我们实现该接口的类就可以实现对象的复制了。
  1. public class Student implements Cloneable {
  2. private String name;
  3. private int age;
  4. public Student() {
  5. super();
  6. }
  7. public class StudentDemo {
  8. public static void main(String[] args) throws CloneNotSupportedException {
  9. //创建学生对象
  10. Student s = new Student();
  11. s.setName("林青霞");
  12. s.setAge(27);
  13. //克隆学生对象
  14. Object obj = s.clone();
  15. Student s2 = (Student)obj;
  16. System.out.println("---------");
  17. System.out.println(s.getName()+"---"+s.getAge());
  18. System.out.println(s2.getName()+"---"+s2.getAge());
  19. //以前的做法
  20. Student s3 = s;
  21. System.out.println(s3.getName()+"---"+s3.getAge());
  22. System.out.println("---------");
  23. //其实是有区别的
  24. s3.setName("刘意");
  25. s3.setAge(30);
  26. System.out.println(s.getName()+"---"+s.getAge());
  27. System.out.println(s2.getName()+"---"+s2.getAge());
  28. System.out.println(s3.getName()+"---"+s3.getAge());
  29. }
  30. }


  • toString方法的重写

    • 右键->Source -> Generate toString()…
    • 快捷键: Alt + Shift+s+s
  • equals方法的重写:

    • 方式一:手动重写(如下)
    • 方式二:自动生成:
      • 右键->Source -> Generate hashCode and equals()…
      • 快捷键: Alt + Shift+s+h
  • Eg: 重写equals方法:

  1. @Override
  2. public boolean equals(Object obj) {
  3. //name是String类型的,而String是引用类型的,所以,在这里不能直接用==比较,应该用equals()比较
  4. //String的equals()方法是重写自Object类的,比较的是字符串的内容是否相同
  5. //this -- s1
  6. //obj -- s2
  7. //我们要使用的是学生类的特有成员变量,所以要向下转型
  8. Student s = (Student)obj; //s -- obj -- s2;
  9. if(!(obj instanceof Student)){
  10. return false;
  11. }
  12. //如果是就继续
  13. Student s = (Student)obj;
  14. //System.out.println("同一个对象,还需要向下转型并比较吗?");
  15. return this.name.equals(s.name) && this.age == s.age;
  16. }
  • ==的用法:
    • 基本类型:比较的就是值是否相同
    • 引用类型:比较的就是地址值是否相同
  • equals 只能比较引用类型,默认情况下比较的是地址值是否相同,但可以根据需求重写该方法。

  • instanceof: 判断对象名是否是该类名的一个对象

    • 格式:对象名 instanceof 类名




posted @ 2016-03-04 23:38  鹿天斐  阅读(183)  评论(0编辑  收藏  举报