Java入門-Java學習路線課程第八課:方法和方法重載

本博客地址 | GitHub | 更多資源免費下載

       小夥伴們,大家好!感謝大家的支持!今天我給大家帶來方法的使用,非常重要。許多小夥伴在這章就開始懵了,希望給大家帶來不一樣的早餐。

       前面我們學過了沒有帶參方法,即無參方法,今天我們來學習一下有參方法和方法重載。

JavaSE方法和方法重載

1、定義帶參方法:
修飾符 返回值(有返回值和無返回值) 方法名(類型 變量名,[參數2,參數3....]){//形參
   //方法內容 執行代碼塊
}
2、調用帶參數的方法
對象名.方法名(參數1, 參數2,……,參數n)//實參
3、引出來許多新的技術點:
  • 實參 形參
  • 重載
  • 構造方法
4、帶參方法的演示案例1:
package com.javaxyz.mehtod1;

/**
 * @ClassName:Juice.java
 * @Description:榨汁類
 * @Author:DongGaoYun
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-19 下午2:49:23
 * @Version:1.0 帶入參數
 */
public class Juice {
	// 屬性
	String name;
	int num;

	// 方法 榨汁 在方法中帶的變量,叫局部變量,也叫形式參數。 簡稱:形參  可以帶1到n個形參
	public void getJuices(int num,String name) {
		System.out.println("榨"+num+"杯"+name+"汁");
	}
}

package com.javaxyz.mehtod1;

/**
 * @ClassName:TestJuice.java
 * @Description:測試榨汁
 * @Author:DongGaoYun 
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-19 下午2:51:41
 * @Version:1.0
 * 1.創建對象
 * 2.給屬性賦值
 * 3.調用帶參方法
 */
public class TestJuice {

	/**
	 * 完成需求:
	 * 1.創建對象
	 * 2.給屬性賦值
	 * 3.調用帶參方法
	 */
	public static void main(String[] args) {
		//創建對象有幾步:引包 創建對象 使用
		Juice j=new Juice();
		//給屬性賦值
		j.name="西瓜";
		j.num=4;
		//調用帶參方法 在調用方法時放入的變量名,叫實際參數。 簡稱:實參
		//小知識: 三致(順序、類型、數量相同)
		//用Scanner對象鍵盤錄入
		j.getJuices(j.num,j.name);
	}
}
5、帶參方法的演示案例2:
package com.javaxyz.mehtod1;

/**
 * @ClassName:Pet.java
 * @Description:寵物類
 * @Author:DongGaoYun 
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-19 下午2:22:53
 * @Version:1.0
 * 實現一個技術點:
 * 帶參方法 形參和實參 
 * 構造方法
 * 方法重載
 * 
 */
public class Pet {
	//屬性
	public String name;
	public String sex;
	public int age;
	public int love;
	
	//方法 在方法中帶的變量,叫局部變量,也叫形式參數。 簡稱:形參
	public void getMethod(String name){
		System.out.println("寵物的姓名:"+name);
	}	
}

package com.javaxyz.mehtod1;

/**
 * @ClassName:TestPet.java
 * @Description:測試帶參方法
 * @Author:DongGaoYun 
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-19 下午2:41:42
 * @Version:1.0
 */
public class TestPet {

	/**
	 * 完成需求:
	 * 1.創建對象
	 * 2.給屬性賦值
	 * 3.調用帶參方法
	 */
	public static void main(String[] args) {
		//創建對象有幾步:引包 創建對象 使用
		Pet dog=new Pet();
		//給屬性賦值
		dog.name="小強";
		//調用帶參方法 在調用方法時放入的變量名,叫實際參數。 簡稱:實參
		dog.getMethod(dog.name);
	}
}
6、增加學生的演示案例:
package com.javaxyz.mehtod2;

/**
 * @ClassName:Student.java
 * @Description:方法參數的使用 增、查學生 
 * @Author:DongGaoYun
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-19 下午3:13:11
 * @Version:1.0
 */
public class Student {
	// 動態聲明數組
	String[] names = new String[16];

	// boolean flag;
	// String name1=new String();//對比學習
	
	// 增加學生
	public boolean getAddStudent(String name) {
        //設置標識,非常重要
		boolean flag = false;
		// 操作數組
		for (int i = 0; i < names.length; i++) {
			// 當爲數組元素爲null時,就插入數據
			if (names[i] == null) {
				names[i] = name;
				flag = true;
				break;
			}
		}
		return flag;
	}

	// 查找學生
	/**
	 * 分析需求: 1.Scanner鍵盤錄入、for、數組下標 2.錄入學生的姓名:5個 ?保存在數組裏 3.錄入查找的區間: int start
	 * 開始的位置 int end 結束的位置 查找姓名 name 4.靈活的使用for 掌握數組的下標 掌握設置標識  掌握跳轉語句
	 */
	public boolean getArray(String name, int startIndex, int endIndex) {
        //設置標識,非常重要
		boolean flag = false;
		// int[] num={1,3,4,6};
		// 下標0 1 2 3 所以startIndex-1
		for (int i = startIndex - 1; i < endIndex; i++) {
			if (name.equals(names[i])) {
				flag = true;
				break;
			}
		}
		return flag;
	}

	// 顯示學生
	public void show() {
		//循環顯示學生的姓名
		for (int i = 0; i < names.length; i++) {
			//判斷數組元素不爲空時打印
			if (null != names[i]) {
				System.out.println(names[i]);
			}
		}
	}
}
7、基本數據類型和引用數據類型傳遞值的區別:
  • 基本數據類型,操作傳遞的是變量的值,改變一個變量的值不會影響另一個變量的值。
  • 引用數據類型(類、數組和接口),賦值是把原對象的引用(可理解爲內存地址)傳遞給另一個引用
8、基本數據類型和引用數據類型傳遞值的演示案例:
package com.javaxyz.mehtod3test;

/**
 * @ClassName:Student.java
 * @Description:描述信息
 * @Author:DongGaoYun
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-19 下午3:13:11
 * @Version:1.0
 */
public class Student {
	int age;
}

package com.javaxyz.mehtod3test;

/**
 * @ClassName:Test.java
 * @Description:測試調用方法和屬性
 * @Author:DongGaoYun 
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-23 下午2:48:13
 * @Version:1.0
 */
public class Test {
	public void calc1(int num) {
		num = num + 1;
	}

	public void calc2(Student student) {
		student.age = student.age + 1;
	}
	public static void main(String[] args) {
		//測試類
		Test test=new Test();
		//局部變量
		int n=8;
		//調用方法
		test.calc1(n);
		//創建對象
		Student stu=new Student();
		//給屬性賦值
		stu.age=18;
		//調用方法,並賦值
		test.calc2(stu);
		//打印
		System.out.println(n+"---"+stu.age);
	}	
}
9、基本數據類型和引用數據類型傳遞值的演示案例內存圖:

在這裏插入圖片描述

10、成員變量和局部變量的區別
  • 作用域不同

    • 局部變量的作用域僅限於定義它的方法
    • 成員變量的作用域在整個類內部都是可見的
  • 初始值不同

    • Java會給成員變量一個初始值
    • Java不會給局部變量賦予初始值
  • 是否可以同變量名?

    • 在同一個方法中,不允許有同名局部變量
    • 在不同的方法中,可以有同名局部變量
    • 在同一個類中,成員變量和局部變量同名時,局部變量具有更高的優先級
11、構造方法語法:
訪問修飾符   構造方法名 ( ) { 
       //初始化代碼
}
12、構造方法特點:
  • 無返回值類型

  • 方法名與類名相同

  • 既可以聲明無參構造方法

    也可以聲明有參構造方法

13、聲明有參構造方法後要注意的事項:
  • 在聲明瞭有參構造方法後,系統將不再提供默認無參構造方法
    爲了程序的靈活性,推薦小夥伴們手動創建一個無參構造方法。
14、構造方法作用
  • 對象初始化
15、方法重載的構成
  • 在同一個類中
  • 方法名必須相同
  • 參數數量、數據類型或順序不一致。即三異(三不同)
  • 與其返回值類型、訪問修飾符無關
16、重載、構造方法、this的使用和變量的作用域的使用演示案例:
package com.javaxyz.mehtod4;////包必須在所有代碼之前,註釋除外

/**
 * @ClassName:Person.java
 * @Description:重載的方法
 * @Author:DongGaoYun
 * @Author English name:Andy
 * @URL: www.gyun.org 或 www.javaxyz.com
 * @Email:[email protected]
 * @QQ:1050968899
 * @WeiXin:QingYunJiao
 * @Date:2019-9-23 下午2:46:47
 * @Version:1.0
 */
public class Person {
	// 屬性(全局變量 系統會自動給它們初始化值)
	// this調用構造方法 可以調用普通方法 調用屬性(必須賦值或是賦值給一個變量名)
	public String name;// null
	public String sex; // null
	public int age; // 0

	// 重載的方法
	// 無參構造
	public Person() {
		// 局部變量
		String name = "張卓3";
		// 打印
		System.out.println("自我介紹一下:我的姓名是:" + name + ",我的年齡是:" + age);
	}

	// 有參構造方法 (注意:在複製前一個方法或重新編寫方法時有可能報錯(重名的錯誤除外),有可能有系統方面的錯誤或中文空格,最有可能是修飾符、返回值類型或類型與變量名之間有中文空格,只要替換成英文空格就好了。)
	public Person(String name, int age) {
		this(name);//用this調用本類構造方法必須放在構造方法的第一位
		this.age = age;
		// 打印
		System.out.println("自我介紹一下:我的姓名是:" + name + ",我的年齡是:" + age);
	}

	// 有參構造方法
	public Person(String name) {
		this();//用this調用本類構造方法必須放在構造方法的第一位
		/* this(name,age); */
		// this表示當前的對象Person
		this.name = name;
		// 打印
		System.out.println("自我介紹一下:我的姓名是:" + name + ",我的年齡是:" + age);
		for (int i = 0; i < 5; i++) {
			System.out.println(i);
		}
		//變量名的作用域不一樣導致報錯:System.out.println(i);
	}
	//方法的重載(規則見目錄15)
	public void method1() {
		System.out.println("自我介紹一下:我的姓名是:" + name);
	}

	public void method1(String name) {
		System.out.println("自我介紹一下:我的姓名是:" + name);
	}

	public void method1(String name, String sex) {
		System.out.println("自我介紹一下:我的姓名是:" + name + ",性別是:" + sex);
	}

	// 不建議這樣寫不同的方法名,沒有特殊情況一個方法名可以搞定
	public void a(String name) {
		System.out.println("自我介紹一下:我的姓名是:" + name);
	}

	public void b(String name, String sex) {
		System.out.println("自我介紹一下:我的姓名是:" + name + ",性別是:" + sex);
	}
}
17、編寫代碼時經常無故報錯:
  • 在複製前一個方法或重新編寫方法時有可能報錯(重名的錯誤除外),有可能有系統方面的錯誤或中文空格,最有可能是修飾符、返回值類型或類型與變量名之間有中文空格,只要替換成英文空格就好了。
18、小夥伴們,本章已經結束,你們都懂了嗎?記得關注、點贊和分享噢!有疑問或好的建議請與我聯繫噢!下次給大家講封裝和繼承噢!敬請關注!

———— 精 選 文 章 ————
  1. Java入門-Java學習路線課程第一課:初識JAVA
  2. Java入門-Java學習路線課程第二課:變量與數據類型
  3. Java入門-Java學習路線課程第三課:選擇結構
  4. Java入門-Java學習路線課程第四課:循環結構
  5. Java入門-Java學習路線課程第五課:一維數組
  6. Java入門-Java學習路線課程第六課:二維數組
  7. Java入門-Java學習路線課程第七課:類和對象
  8. Java入門-Java學習路線擴展課程:equals的使用
  9. Java入門-Java學習路線課程面試篇:取商 / 和取餘(模) % 符號的使用
  10. Java進階-Java學習路線課程第一課:Java集合框架-ArrayList和LinkedList的使用
  11. Java進階-Java學習路線課程第二課:Java集合框架-HashSet的使用及去重原理
  12. Spring框架-Java學習路線課程第一課:Spring核心
  13. Spring框架-Java學習路線課程:Spring的擴展配置
  14. Springboot框架-Java學習路線課程:Springboot框架的搭建之maven的配置
  15. java學習:在給學生演示用Myeclipse10.7.1工具生成War時,意外報錯:SECURITY: INTEGRITY CHECK ERROR
  16. 使用jquery發送Ajax請求的幾種異步刷新方式
  17. idea Springboot啓動時內嵌tomcat報錯- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
  18. 一個簡單的SSM框架Demo(登錄(包含攔截器)和註銷

更多免費資源請關注微信公衆號:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章