04年刚开始学Java时的一些体会, 很菜的

**************************************************JAVA心得体会**********************************************
04/01/26
1。与c++构造函数的不同:看这个

  class  constr
{
  private int x;
  private double y;
  constr(){
        x=0;
 y=0.0;
  }
  constr(int x){
    this.x=x;                                    //C++不能这样
  }
  constr(double y){
    this.y=y;
  }
  constr(int x,double y){
    this.x=x;
 this.y=y;
  }
  void show(){
    System.out.println("x="+x+"y="+y);
  }

}
public class ConstrTest
{
  public static void main(String args[]){
          constr co1=new constr();
   constr co2=new constr(3);
          constr co3=new constr(0.9);
   constr co4=new constr(5,5.8);
 
          co1.show();
   co2.show();
   co3.show();
   co4.show();
  }


}                                             //与C++不同,这里没有分号

程序运行结果:
x=0 y=0.0;
x=3 y=0.0;                                    //C++中y是随机数
x=0 y=0。9;                                  //C++中x是随机数
x=5 y=5。9;
------------------------------------------------------------------------------------------------------
2.C++的类中默认是私有,而Java中的类默认是公有
-------------------------------------------------------------------------------------------------
3.C++的函数可以有默认的返回类型(为int),但Java中必须声明返回类型,没有默认值
----------------------------------------------------------------------------------------------------
4.类方法不能用对象引用,只能用类引用,因为类方法属于类
----------------------------------------------------------------------------------------------------
5.低级别的类型给高级别的类型不用转换,反过来的话就必须强制转换
***********************************************************************************************
04/03/20
1.
继承时父类的构造函数中不能带参数,不道为啥
可以
*****************************************************************************************
04/03/25
1.-------------------注意---------------------------
static属性值可以在static和非static方法中调用,
而static方法中只能使用static属性值
****************************************************************************
04/03/28
1.
在一个类中声明了static的属性,那么它的子类中继承了这个属性,而且是共享的
即无论在父类(还是子类)中改变了这个static属性的值,都会在子类(还是父类)相应改变
-------------------------------------------------------------------------
2.静态方法可以重载,还可以重写,但是子类重写的方法也必须是静态的,否则错误
****************************************************************************
04/03/29
1.
在一个类实现接口时,不能声明一个 没有实现的那个借口里的同名的函数。
*******************************************************************
04/03/30
1.
不管子类中定没定义构造函数,构造函数有参还是无参,它都将先调用父类中的无参构造函数
**********************************************************************
04/04/03
1.--------关于对类中属性、方法初始化顺序的重要心得------------------
1/---------对一般类来说成员初始化顺序----------
详见thinking in java chap4 P26
or
java文件夹下ClassOrder

*****************************************************************
04/04/04
-------------------About Package------------------
引用另外一个包中的类时,需要通过继承实现(不一定),要当心父类的构造函数

***************************************************************
04/04/06
//子类中的方法不一定能重写父类中的方法,当要重写父类中有重载的方法时要特别注意
***********************************************************************
04/04/10
无论是重载还是重写方法,都需要注意的是,重载或是重写的方法不能比原来的方法的访问权限更严格
(好象重载又不用遵守,晕了)
**********************************************************************
04/04/14
子类重写父类中的方法时,要注意
1.重写的方法不能比原来的方法的访问权限更严格
2.父不是static,子不能是static
3.定义子类的方法不能这样:
class Hen{
  void h(){
   P.dyln("it's a hen");
   } 
}
class Cock extends Hen{
   int h(){                      //不能用返回类型区别,否则出错,可以:int h(int a){}
  P.dyln("it's a cock");
  return 3;
  }
  public static void main(String[] args){
   Cock c=new Cock();
   c.h(3);
   } 
}
*************************************************************************************
关于instanceof的用法:
一般是用来判断某个Object是否属于某个class
eg:
    Object o=new C();
    boolean bl=o instanceof A;
    System.out.println(bl);
   
这样不行:
    C c=new C();
    boolean bl=c instanceof A;
    System.out.println(bl);
    C明显并非继承自A,错误
*************************************************************************************************
05/02/16
interrupt()好象对join()不起作用, 对sleep()起作用

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值