Java中的引數傳遞有哪些?通俗易懂

小不點_發表於2020-11-13


前言

為什麼要寫這個呢,因為新手在學習過程中,對這些引數的傳遞經常是有一點迷糊或者懼怕的感覺,那麼本文就簡單帶你們學習一下。下面介紹這三種型別。

1. 類名作為形參和返回值

  1. 類名作為方法的形參 :
    方法的形參是類名,其實需要的是該類的物件
    實際傳遞的是該物件的【地址值】
  2. 類名作為方法的返回值:
    方法的返回值是類名,其實返回的是該類的物件
    實際傳遞的,也是該物件的【地址值】

示例程式碼:

class Cat { 
	public void eat() { 
			System.out.println("貓吃魚"); 
		} 
	}
	
class CatOperator { 
	public void useCat(Cat c) { //Cat c = new Cat(); 
		c.eat(); 
}

public Cat getCat() { 
	Cat c = new Cat(); 
	return} 
}
	
public class CatDemo { 
	public static void main(String[] args) { 
		//建立操作類物件,並呼叫方法 
		CatOperator co = new CatOperator(); 
		Cat c = new Cat(); 
		co.useCat(c); 
		
		Cat c2 = co.getCat(); //new Cat() 
		c2.eat(); 
	} 
}

2. 抽象類作為形參和返回值

  1. 抽象類作為形參和返回值
    方法的形參是抽象類名,其實需要的是該抽象類的子類物件
    方法的返回值是抽象類名,其實返回的是該抽象類的子類物件

程式碼實現:

abstract class Animal { 
	public abstract void eat(); 
}
class Cat extends Animal { 
	@Override
	public void eat() { 
		 System.out.println("貓吃魚"); 
	 } 
 }
class AnimalOperator { 
	public void useAnimal(Animal a) { //Animal a =new Cat(); 
		a.eat(); 
	}
	public Animal getAnimal() { 
		Animal a = new Cat(); 
		return} 
}
public class AnimalDemo { 
	public static void main(String[] args) { 
		//建立操作類物件,並呼叫方法 
		AnimalOperator ao = new AnimalOperator(); 
		Animal a = new Cat(); 
		ao.useAnimal(a); 
		
		Animal a2 = ao.getAnimal(); //new Cat() 
		a2.eat(); 
	} 
}

3. 介面名作為形參和返回值

  1. 介面作為形參和返回值
    方法的形參是介面名,其實需要的是該介面的實現類物件
    方法的返回值是介面名,其實返回的是該介面的實現類物件

示例程式碼:

interface Jumpping { 
	void jump(); 
}
class JumppingOperator { 
	public void useJumpping(Jumpping j) { //Jumpping j = new Cat(); 
		j.jump(); 
	}
	public Jumpping getJumpping() { 
		Jumpping j = new Cat(); 
		return} 
}
class Cat implements Jumpping { 
	@Override 
	public void jump() { 
		System.out.println("貓可以跳高了"); 
	} 
}
public class JumppingDemo { 
	public static void main(String[] args) { 
		//建立操作類物件,並呼叫方法 
		JumppingOperator jo = new JumppingOperator(); 
		Jumpping j = new Cat(); 
		jo.useJumpping(j); 
		
		Jumpping j2 = jo.getJumpping(); //new Cat() 
		j2.jump(); 
	} 
}

4. 內部類

什麼是內部類呢?

相關文章