构造方法与匿名对象

上一篇 / 下一篇  2013-12-08 11:24:04 / 个人分类:java


!uV dsrwu0

:G/^6djpPV0

 51Testing软件测试网cG!h3\$qLch

掌握构造方法的概念及调用时机

Qz e"^B`p t N0

掌握构造方法的重载51Testing软件测试网m\!zM F}6G,fu KC5@T

掌握匿名对象的使用

7_ j:}m Uch0

 

i"Z&u.u#x L)F2b.U,a0

 51Testing软件测试网|!E^t \B0v

 51Testing软件测试网P8D+pB^&QRz t5l5M

构造方法的定义格式

HJ#sKL VHiW0

   class 类名称{51Testing软件测试网a/b _1Q*st

        访问权限 类名称(类型1参数1,类型2参数2...){51Testing软件测试网1eH~ V&d

            程序语句 ;

-]/H}&ig q!KhA0

            ....     //构造方法没有返回值 51Testing软件测试网f A#M6l9iM ^yZ

        } 51Testing软件测试网IT L qH4c$p0Y

    }51Testing软件测试网[ JU*G&q DS+xv3~ X

 

*`u?b$`&E8Z0

 

(@CX_ |P0

l  构造方法的名称必须与类名称一致51Testing软件测试网iK|T"WGt.A;u

l  构造方法的声明处不能有任何返回值类型

f"tUy2K P!W0

l  不能在构造方法中使用return返回一个值

y'V5e3h6Dge0

 51Testing软件测试网t3L'h2\8sH

    class Person{

"pl5J6aUv0

        public Person(){   //声明构造方法51Testing软件测试网4pMt3up(fc

            System.out.println("一个新的Person对象产生。") ;51Testing软件测试网9aaGL8d-Y

        }

+A`3`&`k!E7_by0

    } ;

S2wO&r$\s]0

    public class ConsDemo01{51Testing软件测试网Lk*FZ7mb'o

        public static void main(String args[]){51Testing软件测试网q"im&t.x A0qi`

            System.out.println("声明对象:Person per = null ;") ; 51Testing软件测试网1E-YA(QtF~+_8Sni

            Person per = null ;    //声明对象时并不去调用构造方法51Testing软件测试网0r%KJ2KQ#W

            System.out.println("实例化对象:per = new Person() ;") ;51Testing软件测试网l6lW3@ y0{yf9a

            per = new Person() ;

:A+m;x$F}%_1~X(q"X5p0

        }

v7C9hhp6C%k0

    } ;51Testing软件测试网K3H;`{+v4N*o_3b t2X

 51Testing软件测试网C*ZRL6V~ [

输出结果:51Testing软件测试网3X%wRk,Ja:E!m"B

声明对象:Person per = null ;

$_ Jo2`%b8}5r0

实例化对象:per = new Person() ;51Testing软件测试网&l p~,KEo2k

一个新的Person对象产生。51Testing软件测试网d-T.mmnB&L!L n)K

 

Q3@(y!Z`-y|{0

 51Testing软件测试网;Uwk0R/NzD7L[

构造方法的主要目的是为类中的属性初始化

/i"yo;X4p m Q0

class Person{51Testing软件测试网:n E7^E4wX2Y#Fg

       private String name ;

O;P#dH1E-|3VhbL0

       private int age ;

H0s6[\ il3^/dn0

        public Person(String n,int a){   //声明构造方法,为类中的属性初始化

K2Z'E @0m2R C0

           this.setName(n) ;

3l:|+y6P2t*LLz0

           this.setAge(a) ;

St-W&?/}kn s;d0

          

~&|zS$^-d[0

        } 51Testing软件测试网)j#f$].TL zsZx

        public void setName(String n){

z9l5ZX7\w&Q ^j0

            name = n ;51Testing软件测试网 {pd?]1T

        }51Testing软件测试网q-[-@*]4J!hP

        public void setAge(int a){

8Y9v@7`Z6[ F0

           if(a>0 && a<150){

3?"Q2kaP@q'W0

            age = a ;51Testing软件测试网6m7j w:\JG;b

            }

@)h'e:Z8dl0

        }

:e#|N!cxFf0

        public String getName(){

C'P7X P5yw,G&k3t0

            return name ;51Testing软件测试网X N)t1Uf

        }

%bA:^-E6h5J |0

        public int getAge(){51Testing软件测试网\!h$n$HYDl"P1V

            return age ;

U_ X'K~&B0

        }51Testing软件测试网:Za/~{B3YW9a/yh

        public void tell(){51Testing软件测试网,W g^%o+^-^q&El

            System.out.println("姓名: " + this.getName() +";年龄: " + this.getAge()) ;51Testing软件测试网S1uaHS"aA

        }

I `2{ M;P!i ap0

    } ;

N,p1|0aUI{;t0

    public class ConsDemo02{51Testing软件测试网)F)i$VW |]!OA8E

        public static void main(String args[]){51Testing软件测试网-pb0j ZQMTk

            System.out.println("声明对象:Person per = null ;") ; 51Testing软件测试网5g[*gm^.v H?k

            Person per = null ;    //声明对象时并不去调用构造方法

/`{}~ ^ n0b0

            System.out.println("实例化对象:per = new Person() ;") ;51Testing软件测试网Jg:T glf$O9eJ

            per = new Person("张三",30) ;51Testing软件测试网`+bMdf~8{&Ig

            per.tell() ;

UD \dM4R#p e0

        }

&he2R/q8|4QG'lFUG0

    } ;51Testing软件测试网l ?k5jxY

 51Testing软件测试网)x q?S@}:{|

 

-^]1FV.X8bX bj2k0

输出结果:

^K&\3\+{ pj1`0

声明对象:Person per = null ;51Testing软件测试网0_2GX [*Rpa b"B

实例化对象:per = new Person() ;

/X q*D)}`U8zF0

姓名: 张三;年龄: 30

~0X k%s0d p X0

 

iKsbwe/mG0

 

(u3h _!R\3[0

构造方法重载51Testing软件测试网5ty Tn GG

   public Person(){}51Testing软件测试网4Dc:`+E`1C

    public Person(String name){

+V0R d#f:qR N?6q0

        this.setName(name) ;

$L`N$i ru0H1X0

    }51Testing软件测试网D-}m:Nt

    public Person(String name,int age){

6GY$L yEv![omOsEh0

        this.setName(name) ;51Testing软件测试网s$vWuD

        this.setAge(age) ;51Testing软件测试网~O Fw^ el

    }51Testing软件测试网p uj;y-e3Rt_

 51Testing软件测试网m@4^X LC1`/N^d e,|(O7@

 51Testing软件测试网6Y"h F Z ~

    class Person{51Testing软件测试网"T7Gk;Z;TL5g5s

       private String name ;51Testing软件测试网H0|{Y9tA k

       private int age ;51Testing软件测试网^&S1R:op$~(I8H

       public Person(){}         //声明一个没有参数的构造方法51Testing软件测试网(K R,sjJ6g-` J8ab

       public Person(String n){ //声明有一个参数的构造方法51Testing软件测试网&[:Y6I7X0X2R'C8VW

           this.setName(n) ;    

nxE+G5j Zc.[H8M0

       }

{,Mliq[#ld0

        public Person(String n,int a){   //声明构造方法,为类中的属性初始化51Testing软件测试网%BCvVp1uV f4C,{

           this.setName(n) ;51Testing软件测试网G;pe Dp

           this.setAge(a) ;

JLXumnK6qq0

          

ho~U {'Ih9S~;{0

        } 51Testing软件测试网/W5h:ks7\/o]B:rx

        public void setName(String n){

k4m@$W/^ Ww0

            name = n ;51Testing软件测试网#Ert_0VG

        }

bH v/uc-ZO9u0

        public void setAge(int a){

1C}-}Ng1Z/Q/q"j0

           if(a>0 && a<150){

0H*{a F/E k0

            age = a ;

,Pr`e s`%t7ri0

            }51Testing软件测试网l#|m eE+L2m

        }51Testing软件测试网X.aNN1hiG

        public String getName(){51Testing软件测试网gt;y?F0n

            return name ;

jQNE-~^l0

        }

f]tLF9N0

        public int getAge(){

}q}S3P0

            return age ;

LJvN;F1z\$T0

        }51Testing软件测试网^X)Rfl'g

        public void tell(){51Testing软件测试网}'N.Oz#SLe7m)H

            System.out.println("姓名: " + this.getName() +";年龄: " + this.getAge()) ;

/YR {~H0

        }51Testing软件测试网$M2nKFFu uZTSR8W

    } ; 51Testing软件测试网gj#P {2A*U g

    public class ConsDemo03{51Testing软件测试网1N2m_fE0_o T

        public static void main(String args[]){51Testing软件测试网 D.bW;|K_@

            System.out.println("声明对象:Person per = null ;") ; 51Testing软件测试网8Q/yT)^:x;y_vT

            Person per = null ;    //声明对象时并不去调用构造方法

-Xu z\ j"q0

            System.out.println("实例化对象:per = new Person() ;") ;51Testing软件测试网.IwPWb

            per = new Person("张三",30) ;51Testing软件测试网)U6|,[sM E'e

            per.tell() ;51Testing软件测试网AdU5Nn#M8J

        }

*kq&gu-W9wb0

    } ;

1iC M'l%u*Bl5zL0

 

-E9[;O:tr@0

 

*V n"K!f*M0

匿名对象51Testing软件测试网d8R*]:Bh%F3t

l  只使用一次的对象,称为匿名对象

I6ZM$fO&c?+Z u2C0

l  匿名对象只在堆内存中开辟空间,而不存在栈内存的引用51Testing软件测试网.i)QG2u6Gg]QN0F

 

"n5c5|T)Eu ~0

  class Person{

b+d~ Eg;g0

       private String name ;

,onmQp+K!IA$}0

       private int age ;51Testing软件测试网}$j3p6C2\M%} ?)M!xs#Q7?

       public Person(){}         //声明一个没有参数的构造方法

%d%cOZa4{0

       public Person(String n){ //声明有一个参数的构造方法51Testing软件测试网'nB}STj

           this.setName(n) ;     51Testing软件测试网^ _f:I+z.R1S

       }51Testing软件测试网1M d9B.~d UP

        public Person(String n,int a){   //声明构造方法,为类中的属性初始化

Lq6n)`J8^0

           this.setName(n) ;51Testing软件测试网 G2crOd$x3J7fH\d

           this.setAge(a) ;51Testing软件测试网 x!O5u^2h:Y

           51Testing软件测试网'`v6O] BRu

        }

9aQ&@Wd:y0

        public void setName(String n){51Testing软件测试网u N C,w&~ C3G C

            name = n ;51Testing软件测试网bf!kl'W

        }51Testing软件测试网 e nmh$c`

        public void setAge(int a){

'zo6B-I&Q+R)fw&W0

           if(a>0 && a<150){

*daGI$mq@0

            age = a ;

,zq2X h#qeg8AW0

            }51Testing软件测试网]`Dj` i9z4P

        }

S+K? d3A f,j3V0

        public String getName(){51Testing软件测试网)zg'\P;n'f ]

            return name ;

B@$j_q'H)I1q@ w0

        }

C9j"pp{j:f0

        public int getAge(){

)^ mL%o u5d0

            return age ;

$I%uP&S4v:?%E7To.b0

        }51Testing软件测试网bPe)V6k)X

        public void tell(){

y#yY3W p2Z:XK0

            System.out.println("姓名: " + this.getName() +";年龄: " + this.getAge()) ;

6R'p$m1x(u0

        }51Testing软件测试网Z9_!HEE

    } ;

\g| y-B.j8L0

    public class NoName{51Testing软件测试网+p7V5U(C:Z*Z_

        public static void main(String args[]){

K,j6k g;\P9n K0

            per = new Person("张三",30).tell() ;

b U A~EOj5K[0

        }

(sGK xM*f;RW S0

    } ;51Testing软件测试网V2W$m8KASE

 51Testing软件测试网e5[,l(Fd*Cm

 

wd@ E/KKcw,O"AG0

TAG:

 

评分:0

我来说两句

luoriver

luoriver

北漂一族,80后,计算机专业,从事SIP相关软件测试3年,热爱生活,崇尚运动。 爱看WWE、公开课。爱钻“牛角尖”,这就是我:luorivr!!!!!

日历

« 2024-05-04  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 346030
  • 日志数: 96
  • 图片数: 1
  • 建立时间: 2012-12-27
  • 更新时间: 2014-05-03

RSS订阅

Open Toolbar