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

控制台还原

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

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

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


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:


      • 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:
      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 <font color = red> equals</font> (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 类名
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,723评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,485评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,998评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,323评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,355评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,079评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,389评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,019评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,519评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,971评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,100评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,738评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,293评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,289评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,517评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,547评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,834评论 2 345

推荐阅读更多精彩内容

  • 一、简介 eclipse可谓是Java开发界的神器,基本占据了大部分的Java开发市场,而且其官方还对其他语言提供...
    简单应用阅读 2,183评论 0 14
  • PyCharm3.0默认快捷键 PyCharm Default Keymap 1、编辑(Editing) Ctrl...
    西多的大叔阅读 3,951评论 0 18
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,587评论 18 399
  • 随着消费升级 新零售全渠道,接下来C2M/C2F/C2B将是主流趋势,过去2年迷茫的O2O模式,将在接下来的日子里...
    cae6f12ddc62阅读 682评论 0 0
  • 葡萄酒品鉴是一项复杂而精细的活动。如果要全面细致地鉴别葡萄酒的颜色、香气、风味和口感等特点,你不仅要具有基本的品鉴...
    九月之上阅读 277评论 0 1