目录
- Eclipse中HelloWorld案例以及汉化
- Eclipse的视窗和视图概述
- Eclipse工作空间的基本配置
- Eclipse中内容辅助键的使用
- Eclipse中快捷键的使用
- Eclipse中如何提高开发效率
- Eclipse中一个标准学生类及其测试
- Eclipse中接口抽象类具体类代码体现
- Eclipse中如何生成jar包并导入到项目中
- Eclipse中如何删除项目和导入项目
- Eclipse中断点调试的基本使用
- Eclipse查看Java中参数传递问题
- API概述
- Object类的概述
- Object类的hashCode()方法
- Object类的getClass()方法
- Object类的toString()方法
- Object类的equals()方法
Eclipse中HelloWorld案例以及汉化
- A:选择工作空间
- 工作空间 其实就是我们写的源代码所在的目录
- B:用Eclipse来完成一个HelloWorld案例
- 代码以项目为基本单位
- 创建项目
- 创建包
- 创建类
- 编写代码
- C:编译和运行
- D:Eclipse的汉化
- 从Eclipse3.5开始,安装目录下就多了一个dropins目录,只要将插件解压后放到到该目录即可。
- 同理,这种方式卸载插件也是特别的方便,推荐这种方式
- E:语法检查提示
- 红色波浪线
- 必须处理,否则编译通不过
- 黄色波浪线
- 可以不搭理他
保存后出现.class文件
运行点击Run
或右键Run AS >Java Appilication
Eclipse的视窗和视图概述
- A:视窗 每一个基本的窗体被称为视窗
- PackageExplorer 显示项目结构,包,类,及资源
- Outline 显示类的结构,方便查找,识别,修改
- Console 程序运行的结果在该窗口显示
- Hierarchy 显示Java继承层次结构,选中类后F4
- B:视图 是由某些视窗的组合而成的
- Java视图
- Debug视图
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即可。
Eclipse中内容辅助键的使用
- A:Alt+/ 起提示作用
- B:main+alt+/,syso+alt+/,给出其他提示
- C:补充输出语句,选中需要输出的部分,alt+/选择最后一项即可
- C:定义自己的alt + /
- windows--perference-Java-Editor-Templates--New
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+2
,根据右边生成左边的数据类型,生成方法 - J:删除代码
ctrl + d
- K:抽取方法
alt + shift + m
- L:改名
alt + shift + r
Eclipse中如何提高开发效率
alt + shift + s
- A:自动生成构造方法
- B:自动生成get/set方法
alt + shift + s + c
空参构造alt + shift + s + o
有参构造alt + shift + s + r
生成get/set方法
Eclipse中一个标准学生类及其测试
Eclipse中接口抽象类具体类代码体现
创建一个Animal项目
创建com.hwh.animal包
创建Animal抽象类
创建Cat类继承Animal类
Eclipse中如何生成jar包并导入到项目中
- A:jar是什么?
- jar是多个class文件的压缩包。
- B:jar有什么用?
- 用别人写好的东西
- C:打jar包
- 选中项目--右键--Export--Java--Jar--自己指定一个路径和一个名称--Finish
- D:导入jar包
- 复制到项目路径下并添加至构建路径。
会在桌面生成Animal.jar
将桌面的jar文件Ctrl+C
在day11文件夹中Ctrl+V
添加到classpath中
实际开发时, 可能有多个jar文件, 新建一个lib文件夹
将jar文件拖至lib文件夹中去
再对jar文件>BuildPath>Add to BuildPath
Eclipse中如何删除项目和导入项目
- A:删除项目
- 选中项目 – 右键 – 删除
- 从项目区域中删除
- 从硬盘上删除
Delete project contents on disk
- B:导入项目
- 在项目区域右键找到import
- 找到General,展开,并找到
- Existing Projects into Workspace
- 点击next,然后选择你要导入的项目
- 注意:这里选择的是项目名称
Eclipse中断点调试的基本使用
- A:Debug的作用
- 调试程序
- 查看程序执行流程
- B:如何查看程序执行流程
- 什么是断点:
- 就是一个标记,从哪里开始。
- 如何设置断点:
- 你想看哪里的程序,你就在那个有效程序的左边双击即可。
- 在哪里设置断点:
- 哪里不会点哪里。
- 目前:我们就在每个方法的第一条有效语句上都加。
- 如何运行设置断点后的程序:
- 右键 -- Debug as -- Java Application
- 看哪些地方:
- Debug:断点测试的地方
- 在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
- Variables:查看程序的变量变化
- ForDemo:被查看的源文件
- Console:控制台
- 如何去断点:
- a:再次双击即可
- b:找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。
step into
:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数);step over
:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和step into效果一样的(简而言之,越过子函数,但子函数会执行)。
Eclipse查看Java中参数传递问题
API概述
- A:API(Application Programming Interface)
- 应用程序编程接口
- B:Java API
- 就是Java提供给我们使用的类,这些类将底层的实现封装了起来,
- 我们不需要关心这些类是如何实现的,只需要学习这些类如何使用。
Object类的概述
- A:Object类概述
- 类层次结构的根类
- 所有类都直接或者间接的继承自该类
- B:构造方法
- public Object()
- 子类的构造方法默认访问的是父类的无参构造方法
Object类的hashCode()方法
- public int hashCode()
- a:返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
- b:不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
package com.hwh.object;
import com.hwh.bean.Student;
public class Demo1_hashcode {
public static void main(String[] args) {
Object obj1 = new Object();
int hashcode = obj1.hashCode();
System.out.println(hashcode);
Student s1 = new Student("张三",23);
Student s2 = new Student("李四",24);
System.out.println(s1.hashCode());
System.out.println(s2.hashCode()); //Ctrl + alt + 下键 向下复制一行
//每个对象都有自己的hashcode
}
}
运行结果为
366712642
1829164700
2018699554
Object类的getClass()方法
- public final Class getClass()
- a:返回此 Object 的运行时类。
- b:可以通过Class类中的一个方法,获取对象的真实类的全名称。
- public String getName()
package com.hwh.object;
import com.hwh.bean.Student;
public class Demo2_getclass {
public static void main(String[] args) {
Student s = new Student("张三",23);
Class clazz = s.getClass(); //获取该对象的字节码文件 class不能用作对象名取同音clazz
String name = clazz.getName(); //获取名称(即类名)
System.out.println(name);
}
}
运行结果为com.hwh.bean.Student
Object类的toString()方法
- public String toString()
- a:返回该对象的字符串表示。
public Stirng toString() {
return name + "," + age;
}
- b:它的值等于:
- getClass().getName() + "@" + Integer.toHexString(hashCode())
- c:由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。
package com.hwh.object;
import com.hwh.bean.Student;
public class Demo3_toString {
public static void main(String[] args) {
Student s = new Student("张三",23);
String str = s.toString();
System.out.println(str);
//System.out.println(s.toString()); 也可两句合并为一句
//System.out.println("我的姓名是:"+s.getName()+",我的年龄是:"+s.getAge()); 一样输出姓名年龄
//System.out.println(s); 直接打印对象的引用会调用toString, 一样输出姓名年龄
}
}
运行结果
com.hwh.bean.Student@15db9742
- 左边:类名 中间:@ 右边:hashcode的十六进制表现形式
@Override
public String toString() {
return super.toString();
}
可修改为
@Override
public String toString() {
return "我的姓名是:"+name+",我的年龄是:"+age;
}
运行结果
我的姓名是:张三, 我的年龄是:23
toString方法的作用:可以更方便的显示属性值。 getXxx方法是为了获取值,可以显示也可以赋值,或者其他操作。
也可用Eclipse快捷键alt + shift + s + s
Object类的equals()方法
- a:指示其他某个对象是否与此对象“相等”。
- b:默认情况下比较的是对象的引用是否相同。
- c:由于比较对象的引用没有意义,一般建议重写该方法。
package com.hwh.object;
import com.hwh.bean.Student;
public class Demo4_equals {
public static void main(String[] args) {
Student s1 = new Student("张三", 23);
Student s2 = new Student("张三", 23);
boolean b = s1.equals(s2); //比较2个对象是否相等
System.out.println(s1 == s2); //比较地址值
//System.out.println(b); //重写之后比较的是对象中的属性值
}
}
运行结果为false
- Object中的equals方法是比较对象的地址值,没有什么意义,我们 需要重写它。
- 因为在开发中我们通常比较的是对象中的属性值,我们认为 相同属性是同一个对象,这样我们就需要重写equals方法。
@Override
public boolean equals(Object obj) {
Student s = (Student)obj; //s1.equals(s2)
return this.name.equals(s.name) && this.age == s.age;
}
重写后运行结果为false true