4 g3 g1 p2 p- } new Data()---构造一个新对象,且初始化当前时间./ _9 s E8 M; ~* I6 i( s. Z8 Z; C; D
Data happyday=new Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用。5 u0 X2 m; r0 G
+ [# C3 U' P" O- H# f
构造器特点:构造器可以有0个,一个或多个参数8 u5 R% l7 \3 O0 E8 Q2 a# H0 s
构造器和类有相同的名字 8 e4 K' |- l" | 一个类可以有多个构造器6 d# y( n: L B: Z" E) C
构造器没有返回值! H( n, Y P: j" b4 I$ E
构造器总是和new运算符一起使用.
9 C2 X% u3 t! {* ?1 a (1)编译器检查对象声明的类型和方法名。 & E. g @( K* b9 U9 Z 1 N Y7 M: e1 L1 k (2)编译器检查方法调用的参数类型。 3 N1 @/ d; ]+ t6 @& _2 K- u, K# C( P' A% h3 L& r8 z% C
(3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法。8 ^# g+ \/ C3 n m! k
+ g& G2 F$ P. K4 W- I5 r" m
(4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本。 ) H- k7 f* ^( U0 E + U8 F' h1 ~# n a) ] (5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码。 9 Z+ b' r, T( f. h5 s' z" V 7 u% o+ X3 M3 P8 @ }' f 14.final类:为防止他人从你的类上派生新类,此类是不可扩展的。1 E& n/ N: g# [, K" l# @- v
1 u& y5 v$ U; ?" q+ t& D& m
15.动态调用比静态调用花费的时间要长。 * P* F2 s0 O( `( O + T& W" a" m' u, \ 16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。; V1 t! _; J0 o8 p, _$ o* |3 s- L% r) Y
. x% X! M* H0 l6 C7 l 例: public abstract string getDescripition3 i S) j# J7 H N3 p- [" U( w
$ a+ f" _+ w- B- Z
17.Java中的每一个类都是从Object类扩展而来的。 8 |* O' T: T, g6 ^/ c 2 }8 e$ {2 V. U8 I f 18.object类中的equal和toString方法。% w) [. U$ e) o5 O1 N, G
% B' d8 T' E, ?+ h equal用于测试一个对象是否同另一个对象相等。 , m' @0 E1 C. l5 `( F! I* x+ |0 i$ l/ f: x+ p; X
toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.6 @8 I" c' @: p1 X( `
(toString 方法是一个很重要的方法): M( K, C& P- t2 b