java基础

来源:互联网 发布:做h5的软件 编辑:程序博客网 时间:2024/05/17 07:01

2010-04-08

1.         什么是变量。(考)

2.         局部变量 必须赋值 不能有修饰符。

3.         语句块内数据只在块的范围内有效。

4.         BigDecimal 精度强。

5.         short char之间必须强制转换。

6.         科学技术法只能表示浮点型

7.         二元运算符(如+=byteshort两种数据类型组成的表达式,其运算结果自动升级为int类型。

8.         位运算符只对整数型做运算 包含char类型。

9.         if 后必须是布尔表达式 可以 boolean b = true ; if(b=false){};

10.     switch casecase后面值是唯一的且只能有一个。

11.     break 后也可加标签 表示退出加标签的循环 如:label: for(){… for(){…break label;}}

12.     continue 也可加标签 break加标签。(不建议使用)

 

题目:

1)  输入年月,判断月多少天,可一直输入,直到输入0退出,如果输入年份错误 则请用户一直输入年份,如果月份错误则一直输入月。

2)  彩票程序,允许用户一直输入几选几,除非输入0退出。输出n+1个数,第一行无排序。第二行排序,最后一个特别号不排序。选出号不允许重复

 

 

2010-04-09

1.         成员变量都有默认初始值。整形:0 浮点型:0.0 char /u0000 布尔:false 引用数据类型:null

2.         字段封装:1)字段私有,private

                       2)公开getset方法

3.         方法:1)都有return,只是void的方法不用显示声明,系统自动调用return

                2return语句需在可执行代码的最后一句。

          3)若有条件分支,则必须保证每个分支都有return语句。

4.         Java只有值传递(考)1)传递值,实参不会随形参变化而变化。

                                        2)传递引用数据类型,实参有可能会变化。

  public class ParamterTest {

//参数传递之传值

  public void ma(int i)

  {

       i=20;

       System.out.println("In Ma method i="+i);//i=20

  }

  //参数传递之传引用

  public void mb(int[] arr)

  {

       arr[0]=200;

       System.out.println("In Mb method arr[0]="+arr[0]);//200

       arr=new int[1];

       arr[0]=300;

       System.out.println("In Mb method arr[0]="+arr[0]);//300

      

  }

  public static void main(String[] args) {

       // TODO Auto-generated method stub

       ParamterTest pt=new ParamterTest();

       int i=10;

       pt.ma(i);

       System.out.println("In Main i="+i);//i=10

       int[] arr={100};

       pt.mb(arr);

       System.out.println("In Main arr[0]="+arr[0]);//200

      

  }

}

5.         方法中参数分为隐式参数,显示参数。每个成员方法都有一个隐式参数this

6.         类之间关系:1)泛化 (is-a):继承关系

                            2)组合 (has-a):1)合成

2)聚合

3)关联

       3)依赖 (use-a):作为返回值

7.         子类中成员:1)从父类继承可见的成员 (字段方法)

                         2)子类所特有的成员 (字段方法)

8.         重载(考) 发生在同一个类或者父子类间。参数类型,数目不同。返回值,修饰符可相同

9.         歧义重载 ma(int i , double j)  ma(double i , int j)

10.     覆盖(考) 子类权限大于父类

               抛出异常子类小于父类

11.     多态对象 调用方法 子类调用子类

                   调用变量 子类调用父类

12.     父类->子类 强制转换  子类->父类 自动转换

13.     任何一个对象只有一种数据类型

14.     数据类型强制转换是指多态对象的强制转换,即父类(多态对象)->子类 强制转换

15.     instance of 判断的是对象所指向的实例是否为of后面的数据类型

public class PersonTest {

 

     /**

      * @param args

      */

     public static void main(String[] args) {

         // TODO Auto-generated method stub

Student stu=new Student();

Person p=new Person();

Person ps=new Student();

System.out.println(stu instanceof Person);//true

System.out.println(stu instanceof Student);//true

System.out.println(p instanceof Person);//true

System.out.println(p instanceof Student);//false

System.out.println(ps instanceof Person);//true

System.out.println(ps instanceof Student);//true

 

     }

 

}

class Person

{

     int age;

     String name;

     String address;

     int i=10;

     public Person()

     {

         System.out.println("P");

     }

     public String display()

     {

         return age+"/t"+this.name+"/t"+this.address;

     }

     }

class Student extends Person

{

    

     String school;

     int i=20;

     public Student(){

         System.out.println("S");

     }

     public double getScore(){

         return 12.34;

     }

     public String display()

     {

         return age+"/t"+this.name+"/t"+this.address

         +"/t"+this.school;

     }

     }

16.     若父类中有无参构造方法,则子类中系统默认调用此构造方法。若父类中没有无参构造方法,则子类需在构造方法中显示调用父类中带参数构造方法,super(父类构造方法参数)

class Person

{

  int age;

  String name;

  String address;

  int i=10;

  /*public Person()

  {

       this(0);

       System.out.println(1);}*/

  public Person(int age)

  {

       this(age,null);

       System.out.println(2);}

  public Person(int age,String name)

  {

       this(age,name,null);

       System.out.println(3);}

  public Person(int age,String name,String address)

  {

       this.age=age;

       this.name=name;

       this.address=address;

       System.out.println(4);

  }

  public String display()

  {

       return age+"/t"+this.name+"/t"+this.address;

  }

  }

class Student extends Person

{

 

  String school;

  int i=20;

  public Student(int age){

       super(age);

       System.out.println("S");

  }

  public Student(int age,String  name)

  {

       this(age);

      

  }

  public Student(int age ,String name,String address)

  {

       this(age,name);

  }

  public double getScore(){

       return 12.34;

  }

  public String display()

  {

       return super.display()+"/t"+this.school;

  }

  }

17.     equals不能判断基本数据类型,只能判断引用数据类型 String,Date,File,包装类,枚举外,equals与双等号判断一致。对于String,Date,File,包装类,枚举,equals判断数据。

18.     重写equals方法,也需重写hashCode方法。

19.     static可修饰字段,方法,块,内部类。

20.     final可修饰字段,类,方法。

21.     abstract 修饰方法,类。Abstractfinalstaticprivate不能用在一起。

 

 

2010-4-16

1.         Java Fx

2.         包装类,不识别字符串中带有L的标识。

3.         类只用public,和默认修饰权限,只有内部类中可以用四种权限修饰。

4.         普通内部类不可以定义静态方法变量,内部类可以定义为静态类,内部则可以定义静态变量,方法

5.         外部类外部,对内部类构造,如:Outer o = new Outer();

Outer.Inner inner = o.new Inner();

6.         内部类访问与内部类变量同名的外部类变量,如:Outer.this.i

7.         静态内部类,外部类的外部构造: Outer.Inner inner = new Outer.Inner();

8.         静态的先于非静态的产生,所以静态内部不能调用非静态。

9.         局部内部类中不能访问方法内非final变量

10.     实例化局部内部类实例化必须在类定义之后

11.     匿名内部类不能有构造方法,不能定义任何静态成员,方法,类。匿名内部类不能是public,protected,private,static。只能创建一个实例,定义必须在new的后面。匿名内部类需继承某一类或接口

12.     内部类可用于多重继承机制的实现。

13.     与资源访问相关的类大都会产生异常。

14.     自定义异常,重写toString()方法,改变打印出的堆栈信息

15.     String s = new String(“abc”) 这句话创建了两个对象,参数”abc”不是new出的对象,放到字符串池(在栈中)中。

16.      

原创粉丝点击