1. 程式人生 > 其它 >Java學習第二十三天<物件分配機制><方法><成員方法傳參機制>

Java學習第二十三天<物件分配機制><方法><成員方法傳參機制>

 

物件分配機制

package chapter06.D1物件分配機制;
​
public class Object01 {
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.age=10;
        p1.name="小明";
        Person p2=p1;//p1賦給了p2 或讓p2指向p1 共享物件空間地址
        p1.age=80;
        System.out.println(p2.age);
​
    }
}
class Person{
    String name;
    int age;
}

package chapter06.D1物件分配機制;
​
public class Object02 {
    public static void main(String[] args) {
        Person a=new Person();
        a.age=10;
        a.name="小明";
        Person b;
        b=a;
        System.out.println(b.name);//小明
        b.age=200;
        b=null;
        System.out.println(a.age);//200
        System.out.println(b.age);//異常
    }
}

方法

package chapter06.D2方法;
​
public class Method01 {
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.cal01();
        p1.cal02(200);
​
        System.out.println(p1.getSum(52,58));
    }
​
}
class Person{
    public void cal01(){
        int res=0;
        for (int i = 1; i <=1000; i++) {
            res+=i;
        }
        System.out.println("cal01計算結果"+res);
    }
    public void cal02(int n){//可傳參
        int res=0;
        for (int i = 1; i <=n; i++) {//n可賦值
            res+=i;
        }
        System.out.println("cal02計算結果"+res);
    }
    public int getSum(int num1,int num2){
        int res=num1+num2;
        return res;
    }
​
}

 

package chapter06.D2方法;
//返回多個引數
public class MethodDetail {
    public static void main(String[] args) {
        AA a = new AA();
        int [] res=a.getSumAndSub(1,4);
        System.out.println("和="+res[0]);
        System.out.println("差="+res[1]);
​
​
    }
   static class AA{
        public int[] getSumAndSub(int n1,int n2){
            int[]resArr=new int[2];
            resArr[0]=n1+n2;
            resArr[1]=n1-n2;
            return resArr;
        }
    }
}

 

package chapter06.D2方法;
​
public class MethodDetail02 {
    public static void main(String[] args) {
        A a = new A();
        a.sayok();
        a.m1();
    }
}
//同一個類的方法呼叫:直接呼叫即可
class A{
    public void print(int n){
        System.out.println("print()方法被呼叫 n="+n);
    }
    public void sayok(){
        print(10);
        System.out.println("繼續執行say ok");
    }
    public void m1(){
        B b = new B();
        b.hi();//跨A類呼叫B類方法,要通過物件名呼叫
    }
}
class B {
    public void hi(){
        System.out.println("B類中的hi()被執行");
    }
}

 

package chapter06.D2方法;
​
public class MethodExercise {
    public static void main(String[] args) {
        AA a = new AA();
      if (a.isOdd(1)){
          System.out.println("是奇數");
      }else {
          System.out.println("是偶數");
      }
      a.print(4,4,'#');
    }
}
class AA{
    public boolean isOdd(int num){
        /*
        if (num%2!=0){
            return true;
        }else {
            return false;
        }*/
        return num%2!=0?true:false;
    }
    public void print(int row,int col,char c){
        for (int i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                System.out.print(c);
            }
            System.out.println();
        }
    }
}

 

成員方法傳參機制

package chapter06.D3成員方法傳參機制;
​
public class MethodParameter {
    public static void main(String[] args) {
        int a=10;
        int b=20;
        AA aa = new AA();
        aa.swap(a,b);
        System.out.println();
        System.out.println("a="+a+"b="+b);//主方法裡的變數
​
    }
}
class AA{
    public void swap(int a,int b){
        System.out.printf("交換前 a="+a+"\tb="+b);
        int temp=a;
        a=b;
        b=temp;//交換
        System.out.println();
        System.out.printf("交換後 a="+a+"\tb="+b);
    }
}

​ 

package chapter06.D3成員方法傳參機制;
​
public class MethodParameter02 {
    public static void main(String[] args) {
        B b = new B();
        int []arr={1,2,3};
        b.test100(arr);
        System.out.println("main的arr陣列");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]+"\t");
        }
        System.out.println();
        Person p = new Person();
        p.name="jack";
        p.age=10;
        b.test200(p);
        System.out.println("main的p.age="+p.age);
    }
}
class Person{
    String name;
    int age;
}
class B{
    public void test200(Person p){
        p.age=10000;
    }
    public void test100(int[] arr){
        arr[0]=200;
        //遍歷陣列
        System.out.println("test100的arr陣列");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]+"\t");
        }
        System.out.println();
    }
}