Java中創建物件,呼叫屬性,方法
1.創建物件 類名 物件名 = new 類名();
2.呼叫屬性 物件名.變數名="自定義賦值";
3.呼叫方法 物件名.方法名();
構造方法: 方法使用見Day01
構造方法沒有回傳值型別。如果有那就不是構造方法,而是和構造方法同名的成員方法
代碼:
import java.util.Scanner;
public class Day01 {
public static void main(String[] args){
/**
* 運行企鵝類構造方法
* */
Penguin pen0 = new Penguin();//無參構造
Penguin pen2 = new Penguin("haha",1);//2個引數構造
Penguin pen4 = new Penguin("hahah",1,"Q妹",100);//4個引數構造
//以上三步呼叫可以用下呼叫
Penguin Cpen =null;
Cpen= new Penguin();//無參構造
Cpen.setHealth(); //調方法輸出
Cpen = new Penguin("haha",1);//2個引數構造
Cpen.setHealth(); //調方法輸出
Cpen = new Penguin("hahah",1,"Q妹",100);//4個引數構造
Cpen.setHealth(); //調方法輸出
/**
* 企鵝類構造方法運行結束
* */
Scanner input = new Scanner(System.in); //讓用戶自己輸入
System.out.println("歡迎來到寵物店");
//輸入狗的名字
System.out.print("請輸入要領養的寵物的名字:");
String Dname = input.next();
//選擇寵物的型別
System.out.println("請選擇要領養的寵物(1.狗狗 2.企鵝)");
switch (input.nextInt()){ //簡寫屬性 判斷領養的是狗還是企鵝
case 1: //如果是狗就選擇品種
System.out.println("選擇狗狗的品種(1.聰明的布多拉犬 2.酷酷的雪娜犬)");
String Dsex =""; //接收狗狗的品種
if (input.nextInt()==1){
Dsex="聰明的布多拉犬";
}else{
Dsex="酷酷的雪娜犬";
}
//獲取狗的健康值
System.out.print("請輸入"+Dsex+"的健康值");
int Dhealth =input.nextInt();
//獲取狗的親密度
System.out.print("請輸入"+Dsex+"的親密度");
int Dlove =input.nextInt();
//獲取完狗的屬性 進行實體化Dog類 進行輸出
Dog dog = new Dog(); //實體化Dog類
dog.sex=Dsex; //將品種賦值
dog.name=Dname; //將姓名賦值
dog.love=Dlove; //將親密度賦值
dog.health=Dhealth; //將健康值賦值
dog.setHealth(); //呼叫Dog類的輸出方法
break;
case 2: //如果是企鵝,選擇企鵝的性別
System.out.println("選擇企鵝的性別(1.Q仔 2.Q妹)");
String Psex =""; //接收狗狗的品種
if (input.nextInt()==1){
Psex="Q仔";
}else{
Psex="Q妹";
}
//獲取狗的健康值
System.out.print("請輸入"+Psex+"的健康值");
int Phealth =input.nextInt();
//獲取狗的親密度
System.out.print("請輸入"+Psex+"的親密度");
int Plove =input.nextInt();
//獲取完狗的屬性 進行實體化Penguin類 進行輸出
Penguin pen = new Penguin(); //實體化Penguin類
pen.sex=Psex; //將品種賦值
pen.name=Dname; //將姓名賦值
pen.love=Plove; //將親密度賦值
pen.health=Phealth; //將健康值賦值
pen.setHealth(); //呼叫Penguin類的輸出方法
break;
}
}
}
//Dog狗類
public class Dog {
String name=""; //狗的昵稱
int health = 100; //狗的健康值
int love =0; //親密度
String sex=""; //狗的品種
public void setHealth() {
System.out.println("寵物的自白:\n我的名字叫"+this.name+",健康值是"+this.health+",和主人親密度是"+this.love+",性別是"+this.sex);
}
}
//企鵝類
public class Penguin {
String name=""; //企鵝的昵稱
int health = 100; //企鵝的健康值
int love =0; //親密度
String sex=""; //企鵝的性別
/**
* 構造方法的名稱和類名相同,無回傳值型別 通常用來在創建物件時執行初始化賦值作業
* */
/**
* 企鵝類無參構造方法
* */
public Penguin(){
name="楠楠的無參構造方法";
love=20;
sex="Q妹";
System.out.println("執行"+name);
}
/**
* 2引數 帶參構造方法 引數必須是本類擁有
* */
public Penguin(String name, int love){
name="楠楠的帶參(2個引數)構造方法";
love=20;
System.out.println("執行"+name);
}
/**
* 4引數 帶參構造方法 引數必須是本類擁有
* */
public Penguin(String name, int love,String sex,int health){
name="楠楠的帶參(4個引數)構造方法";
love=20;
this.health=health;
this.sex=sex;
System.out.println("執行"+name);
}
public void setHealth() {
System.out.println("寵物的自白:\n我的名字叫"+this.name+",健康值是"+this.health+",和主人親密度是"+this.love+",性別是"+this.sex);
}
}
方法多載:
1.必須同意類中
2.方法名相同
3.引數串列(方法引數的個數 或者 引數型別)不同
4.與方法回傳值 和 方法修飾符 沒有任何關系
Static修飾符: static修飾的變數屬于這個類所有, 即 這個類創建的所有物件共用同一個static變數
通常把static修飾的屬性和方法稱為類屬性(類變數)和類方法
不使用static修飾的屬性和方法屬于單個物件,通常稱為實體屬性(實體變數)
結論: 在方法里面不可以定義 Static變數 也就是說,類變數不能是區域變數
final:
1、final類
final類不能被繼承,因此final類的成員方法沒有機會被覆寫,默認都是final的。在設計類時候,如果這個類不需要有子類,類的實作細節不允許改變,并且確信這個類不會載被擴展,那么就設計為final類
2、final方法
如果一個類不允許其子類覆寫某個方法,則可以把這個方法宣告為final方法。
使用final方法的原因有二:
第一、把方法鎖定,防止任何繼承類修改它的意義和實作。
第二、高效。編譯器在遇到呼叫final方法時候會轉入內嵌機制,大大提高執行效率。
3、final變數(常量)
用final修飾的成員變數表示常量,值一旦給定就無法改變!
final修飾的變數有三種:靜態變數、實體變數和區域變數,分別表示三種型別的常量。
另外,final變數定義的時候,可以先宣告,而不給初值,這中變數也稱為final空白,無論什么情況,編譯器都確保空白final在使用之前必須被初始化。但是,final空白在final關鍵字final的使用上提供了更大的靈活性,為此,一個類中的final資料成員就可以實作依物件而有所不同,卻有保持其恒定不變的特征。
4、final引數
當函式引數為final型別時,你可以讀取使用該引數,但是無法改變該引數的值。
5、static和final一塊用表示什么
static final用來修飾成員變數和成員方法,可簡單理解為“全域常量”!
對于變數,表示一旦給值就不可修改,并且通過類名可以訪問。
對于方法,表示不可覆寫,并且可以通過類名直接訪問。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/143543.html
標籤:非技術區
上一篇:字串陣列怎么判斷與某個字串相等
下一篇:c++一個很神奇的bug
