java心得

----------------------------------2009/9/29-----------------------
1.我遇到的问题:
      《1》.在声明完属性等后要加分号(;),并且分号是在“英文“状态下的。

      《2》.在写main函数时,”string“的开头字母老是小写,总是出现错误的报告。string——>String
总结:
      《1》.注意:main函数主体部分是不能改变的。

      《2》.在写构造函数时,构造函数的名称要和类名相同。
      :
      《3》.在写编程时,写作风格也是非常重要的。要注意”代码的对齐方式“、”括号的成对出现“.....

--------------------------------2009/10/12---------------------------
1.我遇到的问题:
    
      《1》.关于super的问题:(1) super在调用时必须在构造函数的第一行,否则会报错:
                                 call to super must be first statement in constructor.

                             (2) 如果在父类中没有空的构造函数,在子类中的构造函数中要写super(XX);如                                果有则在子类的构造函数中编译器会自动一个父类的方法super();

2.关于继承的总结:           (1) 标为private的属性与方法不能继承;构造方法不能继承。
                             (2) super--若子类构造函数未显示调用父类构造方法,则编译器会自动生成一个super();
                             (3) 同名问题:(a).遮蔽(shadow)---子类的同名属性会遮蔽父类的同名属性,由super()在子类中引用父类的                                               属性。
                                           (b).方法的同名:--1.子类与父类有一样的方法(方法名、参数、返回值均一样);
                                                           --2.子类一旦被转换成父类,则只能调用父类的方法;
                                                           --3.若子类方法与父类方法一样,则运行时,仍会执行子类的方法。 
           
                            (4)父子类间的问题:(a):子类转换成父类自动转换;
                                               (b):父类转换成子类不行。
                                               (c):转换形式包括 赋值转换、传参转换。
-------------------------------2009/10/19-------------------------

1.我遇到的问题:

      《1》.关于抽象类的问题:(1) 在定义完抽象基类--Vehicle1--后,在定义子类Bus1时,出来一个错误:
                      
                                   Multiple markers at this line
                                  - The method DisPlay() of type Bus1 must override a superclass method
                                  - implements Vehicle1.DisPlay
  
                                 --- 解决方案:在Bus1类中要实现基类的所有抽象方法,否则会出错。

     《2》.关于接口问题:     (1) 在定义完--Fly--接口后,在基类中写完-(public class Bus1 extends Vehicle1 implements fly )-后
                                  会出现一个错误:
      
                                   The Bus1 must implement the inherited abstract method fly.fly()

                                   解决方案:Bus1中必须实现接口中的方法,因为“接口也是一个特殊的抽象类”。

                                             在Bus1中添加一个Fly中的fly方法:public void fly(){}

                              (2) 可以定义多个接口在,基类中可以这样写-public class Bus1 extends Vehicle1 implements fly,Swim
                                   即在--implements后的多个接口用 “,”隔开。

                              (3)在做CircleScaleable继承于Circle类同时实现Scaleable接口实验时,在创建完CircleScaleable这些要                                 求时,第一行报错:
                                 Multiple markers at this line
                        - The type CircleScaleable must implement the inherited abstract methodScaleable.scale(double)
                        - Implicit super constructor Circle() is undefined for default constructor. Must define
                        an explicit constructor

                                ——> 解决方案:(1)在CircleScaleable中必须实现接口Scaleable中的抽象方法,即
                                                   public void scale(double proportion){   }
                                                (2)

2.关于抽象类的总结:          (1) 抽象类中必含抽象方法,抽象方法必在抽象类中。
                              (2) 抽象类不能被实例化。
                              (3) 抽象类可以继承抽象类。

3.关于接口的总结:            (1) 接口中的方法都是抽象方法。
                              (2) 实现了某个接口的类其对象可以被转换为该接口类型,但只能调用该接口方法。
                              (3) 一旦声明实现了接口,必须实现接口中所用方法。
                              (4) 一个类可以实现多个接口。
                              (5) 抽象类可以实现接口。
                              (6) 接口可以继承。
4.局部变量和全局变量问题:
                        
                              (1)子定义局部变量和全局变量时,"避免命名重复,命名要规范".


--------2009/11/7----------------------------------

 

1.              ?????             java.lang.NoClassDefFoundError: java
                              Exception in thread "main"
 
------------2009/11/8-----------------------------

1.在做除法运算时出现的错误:
           ---(1)---
                The local variable y may not have been initialized
                The local variable y may not have been initialized

                原因:由于x,y没有被初始化
                解决方法:float  x=1;float y=1;
            ---(2)---
                Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
         at chufa.main(chufa.java:8)
               
                原因:数据越界,出现异常。
                解决方法:加上一个判断条件:if(args.length>1)  就OK了。
                总结:在出现数据越界问题时,应该用 “length”。

           ---(3)----
                 java.lang.NumberFormatException:

                 原因:由于格式不正确导致的错误。
                 解决方法:在错误的地方“ 右击----》surround with---->try catch “ 就行了。
                 总结:一般格式错误就在错误的地方加上”try  catch“.

--------------------------2009/11/11------------------
1.文件读取时出现的错误:
          ---(1)---
                 java.io.FileNotFoundException: e:/test.txt (系统找不到指定的文件。)
                 解决方法:在e盘内建立test.txt 文本文件。

         ---(2)---
                 BufferedReader in  = new BufferedReader(new InputStreamReader(System.in));
                 功能:system.in 从键盘输入内容。

 

----------------------2009/11/19-----------------------
1.出现的异常:
          -----(1)---
                Unhandled exception type IOException
                原因:    没有处理异常;
                解决方法:选中出现异常的代码,--》右击--》surround with--》try catch
                 
         ------(2)----
                Unhandled exception type FileNotFoundException
                原因:   没有异常处理
                解决方法:选中出现异常的代码,--》右击--》surround with--》try catch

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值