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

    No_16_0303 Java基础学习第十一天_第1张图片

  • 2、 命名工程后选择Finish

    No_16_0303 Java基础学习第十一天_第2张图片

  • 3、 新建一个包


    No_16_0303 Java基础学习第十一天_第3张图片

    No_16_0303 Java基础学习第十一天_第4张图片
  • 4、新建一个类


    No_16_0303 Java基础学习第十一天_第5张图片

    No_16_0303 Java基础学习第十一天_第6张图片
  • 5、 编译

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

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

源代码语法检查

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

大纲视窗的使用

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


    No_16_0303 Java基础学习第十一天_第7张图片
  • 选中某个类后按F4可以看到=该类的继承状态。

    No_16_0303 Java基础学习第十一天_第8张图片

基本环境设置

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

  • 控制台:
    Debug -> Console font

  • 其他文件
    Basic -> Text Font

窗口还原

window ->Perspective-> Reset Perspective

控制台还原

Window--Show 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

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

    • 如下设置可将重写方法模板直接给出


      No_16_0303 Java基础学习第十一天_第9张图片
package cn.itcast_03;

public class Cat extends Animal {

    @Override
    public void eat() {
        // TODO Auto-generated method stub
        System.out.println("Hello Cat");
    }

}
  • 注:这里@Overide是注解的意思,即这个方法是重写父类的,如果和父类名字不一致就会报错。

生成jar包并使用jar包

  • jar是什么?
    • jar是多个class文件的压缩包。
  • jar有什么用?
    • 用别人写好的东西
  • 打jar包
    • 选中项目--右键--Export--Java--Jar--自己指定一个路径和一个名称--Finish
      • step1:


        No_16_0303 Java基础学习第十一天_第10张图片
      • step2:


        No_16_0303 Java基础学习第十一天_第11张图片
      • step3:


        No_16_0303 Java基础学习第十一天_第12张图片
  • 使用jar包
    • 复制到项目路径下并添加至构建路径。
      • step1:


        No_16_0303 Java基础学习第十一天_第13张图片
      • step2:


        No_16_0303 Java基础学习第十一天_第14张图片


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:
      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);
      
  • public String toString(): 返回该对象的字符串表示,默认是全路径+@+哈希值的十六进制表示。

    • 其返回值等价于:getClass().getName() + '@' + Integer.toHexString(hashCode())
      • toHexStringInteger类下的一个静态方法:把一个整数转成一个十六进制表示的字符串
    • eg:
        //两行代码结果一致
        System.out.println(s.getClass().getName() + '@'
        + Integer.toHexString(s.hashCode()));
    
        System.out.println(s.toString());
    
    • 注:直接输出一个对象的名称,其实就是调用该对象的toString方法。
  • public boolean equals (Object obj) : 指示其他某个对象是否与此对象“相等”。

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

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

    • Cloneable:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。这个接口是标记接口,告诉我们实现该接口的类就可以实现对象的复制了。
    public class Student implements Cloneable {
        private String name;
        private int age;

        public Student() {
        super();
    }
    
    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());
    }
}


  • toString方法的重写

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

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

@Override
public boolean equals(Object obj) {
    //name是String类型的,而String是引用类型的,所以,在这里不能直接用==比较,应该用equals()比较
    //String的equals()方法是重写自Object类的,比较的是字符串的内容是否相同
    //this -- s1
    //obj -- s2
    //我们要使用的是学生类的特有成员变量,所以要向下转型
    Student s = (Student)obj; //s -- obj -- s2;
    if(!(obj instanceof Student)){
                return false;
            }
            //如果是就继续

            Student s = (Student)obj;
            //System.out.println("同一个对象,还需要向下转型并比较吗?");
            return this.name.equals(s.name) && this.age == s.age;
}
  • ==的用法:

    • 基本类型:比较的就是值是否相同
    • 引用类型:比较的就是地址值是否相同
  • equals 只能比较引用类型,默认情况下比较的是地址值是否相同,但可以根据需求重写该方法。

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

    • 格式:对象名 instanceof 类名

你可能感兴趣的:(No_16_0303 Java基础学习第十一天)