Java中的引數傳遞有哪些?通俗易懂
前言
為什麼要寫這個呢,因為新手在學習過程中,對這些引數的傳遞經常是有一點迷糊或者懼怕的感覺,那麼本文就簡單帶你們學習一下。下面介紹這三種型別。1. 類名作為形參和返回值
- 類名作為方法的形參 :
方法的形參是類名,其實需要的是該類的物件
實際傳遞的是該物件的【地址值】- 類名作為方法的返回值:
方法的返回值是類名,其實返回的是該類的物件
實際傳遞的,也是該物件的【地址值】
示例程式碼:
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 c;
}
}
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. 抽象類作為形參和返回值
- 抽象類作為形參和返回值
方法的形參是抽象類名,其實需要的是該抽象類的子類物件
方法的返回值是抽象類名,其實返回的是該抽象類的子類物件
程式碼實現:
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 a;
}
}
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. 介面名作為形參和返回值
- 介面作為形參和返回值
方法的形參是介面名,其實需要的是該介面的實現類物件
方法的返回值是介面名,其實返回的是該介面的實現類物件
示例程式碼:
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 j;
}
}
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. 內部類
相關文章
- java 傳遞引數的兩種方式Java
- JAVA基礎之-引數傳遞Java
- linux中main引數傳遞LinuxAI
- python中函式的引數傳遞Python函式
- 引數傳遞
- Java方法04:命令列傳遞引數、可變引數Java命令列
- JS的方法引數傳遞(按值傳遞)JS
- Java中將方法作為引數傳遞5種方式Java
- 引數的定義和引數的傳遞
- Mybatis引數傳遞MyBatis
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- 請求引數的傳遞
- 函式的引數傳遞函式
- 獲取url中?後面傳遞的引數
- 深入探討Spring Boot中的引數傳遞Spring Boot
- React事件傳遞引數React事件
- 路由元件傳遞引數路由元件
- C++引數的傳遞方式C++
- 說說不知道的Golang中引數傳遞Golang
- SSM框架中Mybatis傳遞引數的幾種方法SSM框架MyBatis
- 從request中傳遞過來的引數資訊
- 如何計算PHP函式中傳遞的引數數量PHP函式
- 引數傳遞方式必須是const引用傳遞
- Python的函式引數傳遞:傳值?引用?Python函式
- Shell學習【引數傳遞】
- 利用閉包傳遞引數
- JavaScript函式傳遞引數JavaScript函式
- out,ref,params引數傳遞
- t-on-click 傳遞引數
- java中如何給多執行緒中子執行緒傳遞引數?Java執行緒
- GridView傳遞兩個引數的方法View
- vuejs傳遞資料的方法有哪些VueJS
- ABAP 方法呼叫的引數傳遞裡,透過引用傳遞的方式,能修改原始引數值嗎?
- 在 `el-upload` 的事件中傳遞更多引數的方法事件
- Java入門第12天 (方法過載 ,方法的引數傳遞)Java
- Java後臺接收前端傳遞的陣列物件引數的處理Java前端陣列物件
- 函式作為引數傳遞函式
- [Python] 傳遞引數前面的*或**Python