学习思路:多学会思考,多用!
1 MyEclipse与Eclipse的关系;MyEsclipse是Esclipse的一个插件,所以拓展了Eclipse的功能,为了便于安装
所以后面把Eclipse和MyEclipse打包后,安装MyEclipse的同时就把Eclipse安装好了
2 运行Eclipse实际上就是运行java.exe运行界面的话,就是javaw.exe如果Eclipse关不了了,可以在任务管理器中
结束javaw.exe的方式。
3 java中缩写知识:java ee,ide(继承开发环境):itegrity development environment,jms,jmx,jndi等
4 Workspace工作台与project关系:一个工作台可以多个project,workspace保存了eclipse的环境选项的配置
(1)对java Complier以及运行时使用的环境
(2)对快捷键的设置(window——preferences-General-Keys-Content Assist-remove Binding-再增加绑定
如果不起作用,则看一下是否与其他有绑定,把要绑定的输入查看原来绑定的)
5 透视图
透视图中,每一个小窗口就是一个视图
找不到透视图的话,可以在window中show view--other那找,关键自己根据这个作用判断
6 Eclipse调试:双击时断点,点击,查看变量值:在debug中选中变量
7 如何设置单个工程的javac,与java
如何查看单独某个工程的编译(注意是编译版本)版本---首先工程右键--preference-java Compiler就可以看到
而运行版本是通过run as---Run Configurations-jre中查看
高版本可以运行低版本的java程序,但是低版本的不能运行高版本的,这点注意。
有两种方式设置java编译运行环境。
8 快捷键设置程序模板:preferences,因为是帮java设置,所以选择java,然后,因为设置的是模板,所以
选择Templates-然后new 增加
9 如何导入功能呢?
这里介绍一种方法,为保险起见,可以先将要导入的工程考入到要导入的工作台中workspace中,然后
在文件--import-选择已存在的---在选择要导入的,就可以实现导入了
但是,导入之后,有一个问题,就是导入的工程的使用的编译环境是否与我们用的是一样 的呢?
这个可以到Build path中查看,也可以先删除原来的,然后添加
如果是Add Jars的话,就是导入内部的jar文件,即要导入的jar包在工程里面的话,就用这个,如果不是在
工程的目录下,就使用加入外部jar包(Add External jars。。),也可以使用加入库,把多个jar包加入库中。
MyEclipse本身提供了很多类库,可以选择Add library增加。
10 静态导入(从jdk 5.0才开始的,低版本会出现问题):
import可以导入一个类或者某个包中的所有类;
import static 导入一个活多个静态方法(静态导入,省略类名,直接写方法)
11 可变参数
overload(重载) 与 overwrite(重写)的区别;
特点:
(1)可变参数只能放最后;
(2)...位于变量名与变量类型之间,前后有无参数均可;
(3)调用可变参数可以使用数组的形式调用。
如:
public static int add(int x,int ...args)//x为初始值
{
int sum = x;
for(int i=0;i
sum += args[i];
return sum;
}
MyEclipse中注释:ctrl+shift+/
12 for 循环增强版
for(类型type 变量名:集合变量名)
要求:
(1)迭代变量必须在()中定义;
(2)集合变量可以是数组或实现了Iterable接口的集合类;
13 基本数据类型的自动拆箱与装箱
如: Integer Itg = 3; //自动装箱;
System.out.println(Itg+14); //自动拆箱,把类型转化为数值类型,再计算
注意,如果使用自动拆装箱,如果在-128~127范围之内的话,是相同的对象,如果超过了这个范围就
不是同一对象了,这点要注意
这个涉及到享元模式(flyweight)什么是享元模式呢?
享元模式就是把具有相同特征,并经常使用的数据封装成一个对象,当使用这些对象时不用再创建,直接共用
这些数据。
14 枚举
特点,每一个枚举元素都是一个对象。
(1)定义枚举的目的:
就是要让摸个类型的变量取值只能为若干个固定值中的一个,否则编译器就会报错。枚举可以
让编译器在编译的时候就可以控制源程序中填写的非法值,普通变量无法实现这一目标。
(2)如何定义一个枚举功能:
a 私有化构造方法;
b 每一个元素都用一个共有的静态成员变量表示:如SUN,MON等;
c 可以定义若干个公有方法或者抽象方法。例如:要提供nextDay方法必须是抽象的。采用抽象方法
定义一个nextDay就将大量的if。。。else语句转化为一个独立的类。
public class WeekDay
{
private WeekDay(){}
public final static WeekDay SUN= new WeekDay();
public final static WeekDay MON = new WeekDay();
public WeekDay nextDay()
{
if(this == SUN)
return MON;
else
return SUN;
}
public String toString()
{
return this == SUN?"SUN":"MON";
}
}
转换为抽象类后,可以得到:
public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay SUN= new WeekDay()
{
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return MON;
}
};
public final static WeekDay MON = new WeekDay()
{
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return SUN;
}
};
//public WeekDay nextDay()
//{
// if(this == SUN)
// return MON;
// else
// return SUN;
//}
public String toString()
{
return this == SUN?"SUN":"MON";
}
public abstract WeekDay nextDay();
}
注意:枚举的每一个元素都是一个实例对象。
枚举的另一种定义方式
public class EnumTest {
public static void main(String[] args)
{
//WeekDay weekDay = WeekDay.MON;
//System.out.println(weekDay.nextDay());
WeekDay1 wd = WeekDay1.FRI;
System.out.println(wd);
}
public enum WeekDay1{
SUN,MON,Ted,Wed,Thu,FRI,Sat;
}
那如果要为枚举创建构造方法,又该怎么进行呢?
必须在枚举元素的下面,分号的后面写私有的构造函数;
那构造函数式否带参数呢?
可以再构造函数中加入:
private WeekDay1(){System.out.println("First");};
private WeekDay1(int day){System.out.println("Second");}
枚举只有一个,就是单例,创建单例可以用枚举.
写一个带时间参数的交通灯枚举.如下
public enum TrafficLamp
{
RED(30){
public TrafficLamp nextLamp()
{
return GREEN;
}
},
GREEN(45)
{
public TrafficLamp nextLamp()
{
return YELLOW;
}
},
YELLOW(5)
{
public TrafficLamp nextLamp()
{
re..
turn RED;
}
};
private int time;
private TrafficLamp(int time){this.time = time;}
public abstract TrafficLamp nextLamp();
}