现在的位置: 首页 > 综合 > 正文

黑马程序员—基础加强—————–第一天(1)

2012年04月28日 ⁄ 综合 ⁄ 共 4575字 ⁄ 字号 评论关闭

eclipse的介绍和使用:

    工具的使用eclipse:常用的myeclipse是集合了eclipse的工具,它也是java开发的一款工具软件。IDE是集成开发环境的意思,支持工程化管理;图形化界面好方便

        呀!!

    工程:一般来说,一个相对独立的项目就是一个工程,一个项目中有多个java文件和资源文件等可以用一个工程进行管理。这样方便维护各个文件之间的关系。

        工程》》包》》类》》》代码,包名一般是小写开头,变量取名要有意义。

    工作空间:workspace可以包含多个工程project,一个workspace保留了eclipse的一套环境选项的配置(编译器和运行环境的版本配置信息以及快捷键的配置信息)。

    快捷键如何设置:窗口window》》》首选项preferences》》》通用General》》》keys》》》设置快捷键。

    模板代码块的设置:选中变量右击选择surround with可以选择需要的模板代码块,那我们怎么设置一个模板代码块呢?选中变量》》》window》》》首选项

        preferences》》》java》》》编辑器editor》》》模板templates》》》new》》》输入name及描述信息,在patter框中填写内容,结合insert variable进行

        设置。

    eclipse支持调试:双击设置断点,在工具栏上找到一个像虫子一样的图标,点击进入调试模式,选择需要调试的数据,watch变量,F6单步执行,F5进入代码块。

    导入工程:找到需要导入的工程,然后粘贴到所需要的工作台,import导入(看是否需要设置jre),buildpath中设置。

1.5的新特性:

    静态导入,好处就是调用方法的时候不用写类名了。课上的调用max方法,直接将Math导入,简写了代码。比如:import static java.lang.Math.sin;

    可变参数:

      特点:只能出现在参数列表的最后面;

         ...位于变量类型和变量名之间,前后有无空格都可以;

         调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体中以数组的形式访问可变参数。

    public static int add(int x,int...args)
     {
      int sum=x;
      /*  for(int z=0;z<args.length;z++)
          {
          sum+=args[z];
        }*/
       for(int arg:args)
       {
          sum+=arg;
       }
       return sum;
    }

    增强for循环

        格式:for(type 变量名:集合、数组名称){……}    

        集合变量可以是数组或者必须是实现了iterable接口的集合类

        迭代变量必须在()中定义     <int arg>

        for(int arg:args){

          sum+=arg;

        }

    基本数据类型的装箱于拆箱功能:

 public static void main(String[] args)
{

    Integer i=2;
    System.out.println(i+121);
    String s1=new String("abc");
    String s2=new String("abc");
    Integer i2=2;
    Integer i3=2;
    Integer i4=200;
    Integer i5=200;
    System.out.println(i3==i2);   //true
    System.out.println(i4==i5);   //false,值超出了范围
    Integer i6=Integer.valueOf(222);
    Integer i7=Integer.valueOf(222);
    System.out.println(i6==i7);   //true;值超出了范围为false
}

        只要i2、i3在-128----127之间就可以自动拆装箱(小整数使用平率高),这种设计模式就是享元模式flyweight:很多很小的对象,他们有很多相同的东西,就可

      以把他们变成一个对象,还有些不同的东西变成外部属性,把他们当成参数传入方法称为外部状态,相同的就是内部状态还听过的单例设计模式《单例设计模式也可以    

      用枚举里面有一个元素来设计》

枚举:

    常用的方法:name() ,可以返回枚举常量的名称, int   ordinal() 返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。string  toString(),返

        回枚举常量的名称。valueOf()返回带指定名称的指定枚举类型的枚举常量。

    为什么要有枚举?     它的好处:在编译时期就能发现源程序的非法值,而普通变量的方式在开发阶段无法实现这一目标

    用普通类实现枚举类的功能:

      定义一般类来实现:可以被类名直接调用static、不可以创建对象private、将天数定义成常量final,

      定义一般类来实现枚举类的功能:私有的构造方法,每个元素分别用一个公有的静态成员变量表示、可以有若干个公有方法或抽象方法。

public abstract class WeekDay {
    private WeekDay(){}
    public final static WeekDay SUN=new WeekDay(){
      public WeekDay nextDay()
      {
        return MON;
      }
    };
    public final static WeekDay MON=new WeekDay(){
      public WeekDay nextDay()
      {
        return SUN;
      }

      // public final static WeekDay TUS=new WeekDay();
      // public final static WeekDay WEN=new WeekDay();
      // public final static WeekDay THER=new WeekDay();
      // public final static WeekDay FRI=new WeekDay();
      // public final static WeekDay SAT=new WeekDay();    

      public abstract WeekDay nextDay();    //抽象方法

      /* public WeekDay nextDay()
       {
           if(this==SUN)
            return MON;
          else
            return SUN;
       }*/     /*换一种方式:public abstract WeekDay nextDay()那么类本身也是abstract的,且子类要覆盖父类的抽象方法*/
     };

    public String toString()
    {
      return this==SUN?"SUN":"MON";      //这里已经用三元运算符了,结果只有两个,测试的时候要注意
    }
}

public class EnumTest {
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    //  WeekDay weekDay=WeekDay.MON;
    //  System.out.println(weekDay.nextDay());
    /* WeekDay weekDay=WeekDay.FRI;
     System.out.println(weekDay);
       System.out.println(weekDay.name());
     System.out.println(weekDay.ordinal());
     System.out.println(WeekDay.valueOf("MON"));
       System.out.println(WeekDay.values().length);*/
     for(int x=0;x<WeekDay.values().length;x++)
     {
        System.out.println(WeekDay.values()[x]);
     }
 }
定义一个带构造方法的枚举时,所有的构造方法都要写在元素的后面,最后的一个元素要封号结尾*/

public enum WeekDay
{
    SUN(),MON(2),TUE,WED,THI,FRI,SAT;//SUN(1)>>>>>two    SUN>>>>one
    private WeekDay(){System.out.println("one");}
    private WeekDay(int day){System.out.println("two");}
}
这每个元素也是一个类,它是TrifficLamp的子类复写了TrifficLamp的抽象方法
public enum TrifficLamp{
  RED(30){     //这是带有参数和抽象方法的枚举类,枚举本身也是特殊的类,打印一个枚举的时候它自动实现了tostring方法 。
    public TrifficLamp nextLamp()
    {
      return GREEN;
    }
  },
  GREEN(45){
    public TrifficLamp nextLamp()
    {
      return YELLOW;
    }
  },
  YELLOW(15){
    public TrifficLamp nextLamp()
    {
      return RED;
    }
  };
  public abstract TrifficLamp nextLamp(); 
  private int time;
  private TrifficLamp(int time)
  {
    this.time =time;
  }

}

.........................................................新技术结束.............................................................................

抱歉!评论已关闭.