一:代碼塊和方法的執行順序及執行特點
class StudentDemo {
static {
System.out.println("StudentDemo的靜態代碼塊"); //2
}
public static void main(String[] args) {
System.out.println("我是main方法"); // 2
Student s1 = new Student();
Student s2 = new Student();
}
}
public class Student {
static {
System.out.println("Student 靜態代碼塊"); //3
}
{
System.out.println("Student 構造代碼塊"); //4 6
}
public Student() {
System.out.println("Student 構造方法"); //5 7
}
}
運行結果:
我是main方法
Student 靜態代碼塊
Student 構造代碼塊
Student 構造方法
Student 構造代碼塊
Student 構造方法
註釋:main()方法先執行,然後是靜態代碼塊>構造代碼塊>構造方法,靜態代碼塊只執行一次,構造代碼塊和構造方法每創建一次對象就執行一次
二:Math類()
例:做一個隨機數的小遊戲(獲得1–100的一個隨機數,只給十次機會)
import java.util.Scanner;
public class demo {
public static void main(String[] args) {
int num=(int)(Math.random()*100+1);
for (int i = 0; i < 10; i++) {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個整數,範圍是1--100");
int userNum = sc.nextInt();
if( userNum>num){
System.out.println("猜大了");
}else if(userNum<num) {
System.out.println("猜小了");
}else if(num==userNum){
System.out.println("恭喜你!猜對了");
break;
}
}
}
}
運行結果:
請輸入一個整數,範圍是1--100
50
猜大了
請輸入一個整數,範圍是1--100
25
猜小了
請輸入一個整數,範圍是1--100
37
猜小了
請輸入一個整數,範圍是1--100
43
猜小了
請輸入一個整數,範圍是1--100
45
猜大了
請輸入一個整數,範圍是1--100
44
恭喜你!猜對了
註釋:Math類包含用於執行基本數學運算的方法,由於Math類在java.lang包下,所以不需要導包,沒有構造方法,因爲它的成員全部是靜態的。
三:類與對象
寫一個標準的手機類,寫出構造方法並測試
public class Phone {
private String name;
private int price;
public Phone() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void vedio(){
System.out.println("看電影");
}
public void palyGame(){
System.out.println("打遊戲");
}
public void setPrice(int price) {
this.price = price;
}
}
public class Test {
public static void main(String[] args) {
Phone phone = new Phone();
phone.setName("小米");
phone.setPrice(2399);
System.out.println("品牌:"+phone.getName());
System.out.println("價格:"+phone.getPrice());
phone.palyGame();
phone.vedio();
}
}
運行結果:
品牌:小米
價格:2399
打遊戲
看電影
註釋:
構造作用:創建對象,給對象中的成員進行初始化
特點:a:方法名與類名相同 b:沒有返回值類型,連void都沒有 c:沒有具體的返回值