Java學習第二十三天<物件分配機制><方法><成員方法傳參機制>
阿新 • • 發佈:2022-03-11
物件分配機制
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(); } }