目录
1:Eclipse的概述使用(掌握)
1:Eclipse的安装
2:用Eclipse写一个HelloWorld案例,最终在控制台输出你的名字
A:创建项目
B:在src目录下创建包。cn.itcast
C:在cn.itcast包下创建类。HelloWorld
D:在HelloWorld下有一个方法。public static voidmain(String[] args) {}
E:在main方法中有一个输出语句。System.out.println("你的名字");
3:Eclipse空间的基本配置
A:程序的编译和运行的环境配置(一般不改)
window-- Preferences -- Java
编译环境:Compiler 默认选中的就是最高版本。
运行环境:Installed JREs 默认会找你安装的那个JDK。建议配置了Java的环境变量。
问题:
低编译,高运行。可以。
高编译,低运行。不可以。
建议,编译和运行的版本一致。
B:如何去掉默认注释?
window-- Preferences -- Java -- Code Style -- Code Templates
选择你不想要的内容,通过右边Edit编辑。
注意:请只删除注释部分,不是注释部分的不要删除。
C:行号的显示和隐藏
显示:在代码区域的最左边的空白区域,右键 -- Show LineNumbers即可。
隐藏:把上面的动作再做一次。
D:字体大小及颜色
a:Java代码区域的字体大小和颜色:
window-- Preferences -- General -- Appearance -- Colors And Fonts -- Java修改 -- Java Edit Text Font
b:控制台
window-- Preferences -- General -- Appearance -- Colors And Fonts -- Debug -- Consolefont
c:其他文件
window-- Preferences -- General -- Appearance -- Colors And Fonts -- Basic -- TextFont
E:窗体给弄乱了,怎么办?
window-- Reset Perspective
F:控制台找不到了,怎么办?
Window--ShowView—Console
4:常用快捷键
A:格式化 ctrl+shift+f
B:导入包 ctrl+shift+o
如果该类仅仅在一个包中有,就自己显示了
如果该类在多个包中有,会弹出一个框框供你选择
C:注释
单行:注释 ctrl+/,取消注释再来一次。
多行:ctrl+shift+/,ctrl+shift+\
D:代码上下移动
选中代码alt+上/下箭头
E:查看源码
选中类名(F3或者Ctrl+鼠标点击)
5:如何提高开发效率
A:自动生成构造方法
a:无参构造方法 在代码区域右键--source--Generate Constructors from Superclass
b:带参构造方法 在代码区域右键--source--Generate Constructors using fields.. -- finish
B:自动生成getXxx()/setXxx()方法
在代码区域右键--source--Generate Gettersand Setters...
提供了对应的快捷键操作。
alt+shift+s
按下带有下划线的那个字母即可。
C:如何继承抽象类和实现接口。
D:Override的作用
表示该方法是重写父类的。如果方法声明和父类不匹配,就会报错。
6:通过讲解的快捷键和提高开发效率的一些内容完成如下内容
自定义学生类:Student
成员变量;
姓名
年龄
构造方法:
无参
带参
成员方法:
getXxx()/setXxx()
在给出一个show()方法,显示类的所有成员信息。
然后,写一个测试类,对学生的代码进行测试。
StudentDemo
7:删除项目和导入项目
删除项目
选中项目 – 右键 – 删除
从项目区域中删除
从硬盘上删除
导入项目
在项目区域右键找到import
找到General,展开,并找到
ExistingProjects into Workspace
点击next,然后选择你要导入的项目
注意:这里选择的是项目名称
8:要注意的几个小问题
如何查看项目所在路径
选中 -- 右键 -- Properties -- Resource -- Location
导入项目要注意的问题
项目区域中不可能出现同名的项目(新建或者导入)
自己随意建立的文件夹是不能作为项目导入的
修改项目问题
不要随意修改项目名称
如果真要修改,不要忘记了配置文件.project中的
<name>把这里改为你改后的名称</name>
9:大家接收文件的注意事项
A:专门建立一个文件夹用于接收项目,不要随意放置。
B:同一个项目再次接收的时候,先去存放目录把原始项目删除,然后重新存储,最后刷新项目即可。
C:每天对照我写的项目,自己也创建一个练习项目
举例:我的项目名称 day11_eclipse
你就创建一个项目名称 day11_eclipse_test
10:Eclipse中代码的高级(Debug)调试
作用:
调试程序
查看程序执行流程
如何查看程序执行流程
要想看程序流程,就必须设置断点。
什么是断点:
就是一个标记,从哪里开始。
如何设置断点:
你想看哪里的程序,你就在那个有效程序的左边双击即可。
在哪里设置断点:
哪里不会点哪里。
目前:我们就在每个方法的第一条有效语句上都加。
如何运行设置断点后的程序:
右键 -- Debug as -- Java Application
看哪些地方:
Debug:断点测试的地方
在这个地方,记住F6,或者点击也可以。一次看一行的执行过程。
Variables:查看程序的变量变化
ForDemo:被查看的源文件
Console:控制台
如何去断点:
a:再次双击即可
b:找到Debug视图,Variables界面,找到Breakpoints,并点击,然后看到所有的断点,最后点击那个双叉。
2:API的概述
(1)应用程序编程接口。
(2)就是JDK提供给我们的一些提高编程效率的java类。
3:Object类(掌握)
(1)Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。
(2)Object类的构造方法有一个,并且是无参构造
这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造
(3)要掌握的方法:
A:toString() public String toString():返回该对象的字符串表示
返回对象的字符串表示,默认是由类的全路径+'@'+哈希值的十六进制表示。
这个表示其实是没有意义的,一般子类都会重写该方法。
如何重写呢?把该类的所有成员变量值组成返回即可。
但是最终还是自动生成。
注意:直接输出一个对象的名称,其实就是调用该对象的toString()方法。
public class StudentDemo {
publicstatic void main(String[] args) {
Students = 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);
}
}
B:equals()
比较两个对象是否相同。默认情况下,比较的是地址值是否相同。
而比较地址值是没有意义的,所以,一般子类也会重写该方法。
怎么重写呢?一般都是用来比较对象的成员变量值是否相同。
但是最终还是自动生成。
我们要判断的是对象是否是某个类的对象?
格式: 对象名 instanceof类名
表示: 判断该对象名是否是该类名一个对象
if(!(obj instanceof Student)){
return false;
}
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 {}
面试题
==和equals()的区别?
A:==
基本类型:比较的是值是否相同
引用类型:比较的是地址值是否相同
B:equals()
只能比较引用类型。默认情况下,比较的是地址值是否相同。
但是,我们可以根据自己的需要重写该方法。
(4)要了解的方法:
A:hashCode() 返回对象的哈希值。不是实际地址值,可以理解为地址值。
B:getClass() 返回对象的字节码文件对象,反射中我们会详细讲解
public class StudentTest {
publicstatic void main(String[] args) {
Students1 = new Student();
System.out.println(s1.hashCode());// 11299397
Students2 = new Student();
System.out.println(s2.hashCode());//24446859
Students3 = s1;
System.out.println(s3.hashCode());// 11299397
System.out.println("-----------");
Students = new Student();
Classc = s.getClass();
Stringstr = c.getName();
System.out.println(str);// cn.itcast_01.Student
//链式编程
Stringstr2 = s.getClass().getName();
System.out.println(str2);
}
}
C:finalize() 用于垃圾回收,在不确定的时间
D:clone() 可以实现对象的克隆,包括成员变量的数据复制,但是它和两个引用指向同一个对象是有区别的。