class Person { PRivate String name; // 聲明姓名屬性 private int age; // 聲明年齡屬性 public Person(String name,int age){ // 定義構(gòu)造方法為屬性初始化 this.setName(name) ; // 為name屬性賦值 this.setAge(age) ; // 為age屬性賦值 } public void tell() { // 取得信息的方法 System.out.println("姓名:" + getName() + ",年齡:" + getAge()); } ... public void setAge(int a) { // 設(shè)置年齡 if (a >= 0 && a < 150) { // 在此處加上驗(yàn)證代碼 age = a; } }}public class ConsDemo02 { public static void main(String args[]) { Person per = new Person("張三",30); // 調(diào)用構(gòu)造方法,傳遞兩個(gè)參數(shù) per.tell(); // 輸出信息 }}三、 構(gòu)造方法3.1 、默認(rèn)的構(gòu)造方法每個(gè)類中肯定都會(huì)有一個(gè)構(gòu)造方法如果一個(gè)類中沒有聲明一個(gè)明確的構(gòu)造方法則會(huì)自動(dòng)生成一個(gè)無參的什么都不做的構(gòu)造方法package com.pb.demo2;/* * 人類 */public class Person { //Persion為類名 /* * 屬性,name,sex,age */ public String name; //名字 public String sex ; //性別 public int age; //年齡 /* *方法(行為) */ //吃飯 public void eat(String name){ //傳入一個(gè)String類型參數(shù) System.out.println(this.name+"邀請"+name+"一起吃飯"); } //工作 public void work(){ System.out.println(name+"的工作理念是,干活掙錢有飯吃!"); } //工作 public void work(String contect){ System.out.println(name+"的工作理念是: "+contect); }}上面這個(gè)類并沒有定義構(gòu)造方法,但在創(chuàng)建這個(gè)類的對象里會(huì)默認(rèn)調(diào)用無參數(shù)的構(gòu)造方法
public Person() { } public static void main(String[] args) { //創(chuàng)建Person類的對象 Person hanbing=new Person(); //調(diào)用無參數(shù)的構(gòu)造方法}四、構(gòu)造方法的重載構(gòu)造方法的重載過程與普通方法一樣:參數(shù)的類型或個(gè)數(shù)不同4.1構(gòu)造方法的重載例一public Person(){//無參數(shù)} public Person(String name){ //一個(gè)參數(shù) this.name=name ; } public Person(String name,int age){ //兩個(gè)參數(shù) this.name=name; this.age=age; } 4.2、例2package com.pb.demo2;/* * 影片類 */public class Film { public String type; //影片類型,恐怖片,愛情等 public String name; //電影名稱 public String director; //導(dǎo)演 public String actor; //主演 public Film() { //無參數(shù)的構(gòu)造方法 } public Film(String type) { //一個(gè)參數(shù) this.type=type; } public Film(String type, String name, String director, String actor) { //全部參數(shù)的構(gòu)造方法 this.type = type; this.name = name; this.director = director; this.actor = actor; } //簡介方法 public String display(){ String msg="影片類型: "+type+"/n片名 : "+name+"/n導(dǎo)演:"+director+"/n主演: "+actor; return msg; }}測試類
package com.pb.demo2;/* * 影片測試類 */public class FilmTest { public static void main(String[] args) { System.out.println("*******普通調(diào)用******"); // 聲明影片對象 Film film=new Film(); //為對象的類型,名字,導(dǎo)演,主演賦值 film.type="槍戰(zhàn)片"; film.name="讓子彈飛"; film.director="姜文"; film.actor="周潤發(fā)、葛優(yōu)、姜文"; //調(diào)用方法 System.out.println(film.display()); System.out.println("**************使用構(gòu)造方法****************"); // 聲明影片對象并通過構(gòu)造方法來傳入?yún)?shù) Film two=new Film("愛情片", "不能說的秘密", "周杰倫", "周杰倫、黃秋生、桂綸鎂"); System.out.println(two.display()); }}新聞熱點(diǎn)
疑難解答
圖片精選