开发工具使用
----------------------------------------------------------------------------------------------------------------------
Eclipse以及IDE开发工具介绍:
IDE:他是itegrity development environment的简称,译为集成开发环境;
常见的开发工具有:
Eclipse:被广大的开发人员所使用,此外还有MyEclipse,他是在Eclipse的基础上安装
插件,从而提供更强的功能;
NetBeans:由于被Eclipse抢夺的市场,没有普及起来;
JBuilder: 由于收费,所以已经没落;
Eclipse工程管理和快捷键的配置:
Workspcace的概念:不同的人在使用eclipse编程时有不同的风格,可以借助工作间来使用个人独有的设置;
打个比喻:eclipse是一家公司,来了一个新人,他就会分给一个新的工作间, 用自己
独有的方式在工作间里工作;
所以我们在打开eclipse时,他会提示我们建立一个工作间;这样我们编写的所有的工程都会保存在这个
工作间指定的目录中,同时在编程的过程中,所有的工程(project)都会共享我们在工作间配置的一些东西,
比如:模板,快捷键等;
如何新建一个工作间workspace:
File--->Swith Workspace ---> Other --->在文本框中新建 ---> ok;
如何新建一个工程project:
File---> New --->Java Project ---> 在文本框中输入名字 ---> Finish;
如何在工程中新建一个包:
选中工程文件---> (右击)New ---> Package ---> 在Name文本框中输入包名 ---> Finish;
(输入报名有讲究:通常是将公司的域名反过来写,全部小写;比如:cn.itcast.day1)
如何在包中新建一个类:
选中包---> (右击)New --->Class ---> 在Name文本框中输入包名 --->Finish;
(在输入类名时也是有讲究的:如果类名由多个单词组成,那么每个单词首字母要大写)
如何对工程、包或者类改名字:
选中要改的对象---> (右击)Refactor ---> Rename ---> 输入新的名字 ---> ok;
如何配置编译环境和运行环境:
window---> preferences ---> java |---> compiler:进行编译器配置;
|--->Installed JREs:进行运行环境的配置;
这样一来在整个工作间就使用配置后结果!
如果我们想在某个工程中单独使用编译器和运行环境的配置,而不是使用整个工作间的配置,我们可以这样做:
选中工程--->(右击)Run As---> RunConfigurations --->选中JRE进行单独的配置!
配置的原则是:不能用行动Java版本来编译,然后用旧的Java版本来运行!
快捷键的设置:
window---> keys ---> 在文本框中输入:Content Assist --->
如果他已经有了快捷键设置,但是我们想要设置成为自己配置的,选中后:
可以Remove Binding (在MyEclipse中);或UnBinding Commend(在Eclipse中);
--->然后在下面的Binding文本框中直接按按键“alt”+“/”,配置自己的快捷键--->Apply;
有可能我们配置的快捷键此时还不能使用,因为有可能我们自己配置的快捷键和其他的已有的快捷键冲突,
此时我们要:
window---> keys ---> 在文本框中输入:alt + / ---> 看看是什么原有的快捷键和
我自定义的快捷键冲突,然后将他删除,这样我们配置的快捷键才可以正常使用!
在eclipse中配置Java的模板代码:
window--->preferences ---> java ---> Editor ---> Templats ---> new --->
然后在Name文本框中输入模板的名称,在pattern中输入模板代码,在模板代码中确定原来选中代码的
位置:line_selection,以及cursor(光标)的位置;然后Apply;
在使用时的用法是:选中一段代码---> (右击)Surround With ---> 通过名称选择模板;这样选中的语句将
出现在line_selection处,而光标出现在Cursor处,等待我们输入。
在Eclipse中导入已有的工程:
我们从他人那里得到一个工程的代码,要导入到Eclipse中,应该如何操作呢?
首先,将工程复制到已有的工作台的指定目录中去;
然后按照下面的流程进行:File ---> import---> Genneral --->
Existing Project To Workspace ---> Next---> 选择目录---> Finish ;
最后调节导入的工程的一些配置:因为导入的工程的配置可能和我们自己的工作间的配置有些不同,这样
我们需要做一些调整:
选中工程---> (右击)Build Path ---> configure---> Libararies ---> 选中它原有的库---> Remove --->
Add Library ---> JRE System Library(我们也可以添加自己的库:User Library);
----------------------------------------------------------------------------------------------------------------------
枚举:
引子:对于一周七天,有的人把星期天作为一周的第一天,记为0;而有的人将星期天作为一周的最后
一天,记为7;这样一来就会导致程序员之间由于没有达成共识,从而使得编写出来的程序有安全隐患;
为了避免上述的情况发生,Java提供了枚举这种方式来限定某个类型变量的取值只能为若干个固定值
中的一个,这样就不会发生程序代码因人而异,从而在编译时期就控制了源程序填写的非法值,提供了
程序的安全性;而普通变量的开发方式则无法在开发阶段实现这一目标;
下面我们通过普通类来模拟枚举的原理:
为了代码的简单我们假设一周只有周一和周日两天,这两天交替到来!
号
public class EnumTest{
public static void main(String[] args){
WeekDay weekDay = WeekDay.Mon;
System.out.println(weekDay.nextDay());
}
}
方式一:
public class WeekDay{
privete WeekDay(); //将构造方法私有化,这样就不能乱new对象,而是只能
//通过静态成员来获取我们规定的对象;
public static final WeekDay SUN = new WeekDay();
public static final WeekDay MON = new WeekDay();
//通过这种方式限定了对象,这样调用者就无法乱用了!提高了安全性
public WeekDay nextDay(){
if(this == SUN){
return MON;
}else{
return SUN; //如果一周有七天的话就需要写大量的if…else语句;
}
}
public String toString(){ //将WeekDay以字符串的形式打印出来;
return this == SUN?“SUN”:“MON”;
//如果是一周七天的话,就不能用三元运算符了,而是通过大量的
if…else语句来输出对应的字符串数据*/
}
}
方式二:
看了上面的方式一,我们发现如果需要通过枚举限制的对象太多的话,就需要大量的if…else语句,
这样一来代码就不好看了!于是产生了下面这种定义枚举的方式:
public abstract class WeekDay{ //被abstract修饰,所以不能直接new对象;
private WeekDay();
public static final WeekDay SUN = new WeekDay(){ //多态以及内部类;
public WeekDay nextDay(){ //复写父类的方法
return MON;
}
public String toString(){ //复写父类的方法
return SUN;
}
};
public static final WeekDay MON = new WeekDay(){ //多态以及内部类;
public WeekDay nextDay(){ //复写父类的方法
return SUN;
}
public String toString() //复写父类的方法
return MON;
}
}
public abstract WeekDay nextDay();
//定义了抽象方法,功能是获取下一天是星期几;他将被内部类实现!
public abstract String toString();
//定义了抽象方法,功能是输出对象的字符串表达形式他将被内部类实现!
}
方式二中采用抽象类的形式将大量的if…else语句转移成了一个个独立的内部类;
枚举的基本应用:
public class EnumTest{
public static void main(String[] args ){
WeekDay weekDay = WeekDay.FRI;
System.out.println(weekDay); //调用toString()方法,输出的结果为FRI;
System.out.println(weekDay.name()); //输出自己的名字:FRI;
System.out.println(weekDay.ordinal()); //输出自己的角标位:5;
System.out.println(WeekDay.ValueOf(“SUN”));
//将传入的字符串形式的SUN变成一个对应的WeekDay的实例对象;
System.out.println(weekDay.values()。Length);
//将枚举类中所有的元素取出装到一个数组中
}
public enum Weekday{ //枚举就相当于是一个类;
SUN,MON,TES,WED,THI,FRI,SAT;
//里面的每一个元素就是一个枚举对象,最后的分号可有可无;
}
}
实现带有构造方法的枚举:
public enum WeekDay{
SUN,MON,TES,WED(2),THI,FRI,SAT;
//枚举元素列表需要放在代码部分的最前面,同时和后面的内容通过分号隔开;
//枚举的元素列表中所有的元素都是静态的;
private WeekDay(){ //列表中所有无参的元素在初始化时调用该构造函数
System.out.ptintln(“first”);
}
private WeekDay(int day){ //WED(2) 在初始化时会使用该构造函数
System.out.println(“sceond”);
}
}
实现带有抽象方法的枚举:
定义一个交通灯,他有红绿黄三种颜色,而且每个灯都有自己