面向物件 引數傳遞 (方法 -- 構造方法--過載)
今天學習了面向物件的程式設計思想,首先 要來說一下 類的定義:
1.若干具有相同屬性和行為的群體或抽象
2.類是建立物件的模板
3.類由兩部分組成:屬性和行為
面向物件的程式設計思想:
對問題進行分析,定義物件模型(類),然後根據模型創造物件,使用物件解決問題
類的定義:
【修飾符】 class 類名{
//成員變數
【修飾符】 資料型別 變數名
//成員方法
【修飾符】 返回值型別 方法名(引數..){
//方法體:用於完成某個功能的語句(解決某個問題的語句組)
}
//構造器
【修飾符】 構造器名(引數..){
//方法體
}
}
物件的使用:
1.宣告一個類的型別的變數
類名 物件名;
2.建立一個物件
物件名=new 構造器名(引數);
3.給物件的屬性賦值
物件名.屬性=值
成員變數和區域性變數的區別:
1.成員變數定義在類中 而區域性變數定義在方法體中
2.成員變數的作用域在整個類中 而區域性變數的作用域在所定義的方法體中
3.成員變數可以有修飾符 而 區域性變數的修飾符只有final
4.成員變數有預設值 區域性變數沒有預設值
引數定義的語法 : 資料型別 引數名
引數的作用 :將一個數據傳入到方法體裡面使用
引數的作用域:該方法的方法體
過載:同一個類中方法名相同而引數不同的方法:1.引數個數不同 2.引數個數相同 但是至少有一個對應的引數的資料型別不同
構造器的執行過程:
1.根據類 建立一個物件
2.給構造器的引數傳參
3.執行構造器的方法體:屬性初始化
4.返回該物件
以下為測試時用的狗物件:
package _3m1day;
public class Dog {
public Dog(){
}
public String name;
public char sex;
public String color;
public String breed;
public void bark() {
System.out.println("狗叫");
}
public void eatBone() {
System.out.println("吃骨頭");
}
public void wagTail() {
System.out.println("搖尾巴");
}
public static void main(String[] args) {
Dog dog = new Dog();
dog.name = "蘿莉";
dog.sex = '公';
dog.breed = "土狗";
dog.color = "土黃色";
dog.bark();
dog.eatBone();
dog.wagTail();
}
}
以下的類 使用了方法的過載 構造器 和引數的傳參
package _3m1day;
public class SumPar {
private void test1() {
// TODO Auto-generated method stub
System.out.println("fgjkfdfj");
}
private void test2(int i) {
// TODO Auto-generated method stub
System.out.println(i);
}
private void test3(int i,String s) {
// TODO Auto-generated method stub
System.out.println(i+s);
}
private void test4(String[] ss) {
// TODO Auto-generated method stub
for (int i = 0; i < ss.length; i++) {
System.out.println(ss[i]);
}
}
private void test5(Dog dog) {
// TODO Auto-generated method stub
System.out.println(dog.name+" "+dog.sex+" "+dog.color+" "+dog.breed);
dog.bark();
dog.eatBone();
dog.wagTail();
}
private void test6(Dog[] dog) {
// TODO Auto-generated method stub
for (int i = 0; i < dog.length; i++) {
Dog d=dog[i];
System.out.println(d.name+" "+d.sex+" "+d.color+" "+d.breed);
d.bark();
d.eatBone();
d.wagTail();
}
}
public static void main(String[] args) {
SumPar s = new SumPar();
s.test1();
s.test2(245);
s.test3(12, "dfgfdsdfdsa");
s.test4(new String[]{"ssdsd","sdddf","ertrewrtr"});
Dog dog = new Dog();
dog.name="jmy";
dog.breed="哈士奇";
dog.color="yellow";
dog.sex='公';
s.test5(dog);
Dog dog1 = new Dog();
dog1.name="jmy1";
dog1.breed="哈士奇1";
dog1.color="yellow1";
dog1.sex='公';
Dog dog2 = new Dog();
dog2.name="jmy1";
dog2.breed="哈士奇1";
dog2.color="yellow1";
dog2.sex='公';
Dog[] dogs ={dog1,dog2,dog};
s.test6(dogs);
}
}