小夥伴們,大家好!感謝大家的支持!今天我給大家帶來方法的使用,非常重要。許多小夥伴在這章就開始懵了,希望給大家帶來不一樣的早餐。
前面我們學過了沒有帶參方法,即無參方法,今天我們來學習一下有參方法和方法重載。
文章目錄
- 1、定義帶參方法:
- 2、調用帶參數的方法
- 3、引出來許多新的技術點:
- 4、帶參方法的演示案例1:
- 5、帶參方法的演示案例2:
- 6、增加學生的演示案例:
- 7、基本數據類型和引用數據類型傳遞值的區別:
- 8、基本數據類型和引用數據類型傳遞值的演示案例:
- 9、基本數據類型和引用數據類型傳遞值的演示案例內存圖:
- 10、成員變量和局部變量的區別
- 11、構造方法語法:
- 12、構造方法特點:
- 13、聲明有參構造方法後要注意的事項:
- 14、構造方法作用
- 15、方法重載的構成
- 16、重載、構造方法、this的使用和變量的作用域的使用演示案例:
- 17、編寫代碼時經常無故報錯:
- 18、小夥伴們,本章已經結束,你們都懂了嗎?記得關注、點贊和分享噢!有疑問或好的建議請與我聯繫噢!下次給大家講封裝和繼承噢!敬請關注!
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、小夥伴們,本章已經結束,你們都懂了嗎?記得關注、點贊和分享噢!有疑問或好的建議請與我聯繫噢!下次給大家講封裝和繼承噢!敬請關注!
- Java入門-Java學習路線課程第一課:初識JAVA
- Java入門-Java學習路線課程第二課:變量與數據類型
- Java入門-Java學習路線課程第三課:選擇結構
- Java入門-Java學習路線課程第四課:循環結構
- Java入門-Java學習路線課程第五課:一維數組
- Java入門-Java學習路線課程第六課:二維數組
- Java入門-Java學習路線課程第七課:類和對象
- Java入門-Java學習路線擴展課程:equals的使用
- Java入門-Java學習路線課程面試篇:取商 / 和取餘(模) % 符號的使用
- Java進階-Java學習路線課程第一課:Java集合框架-ArrayList和LinkedList的使用
- Java進階-Java學習路線課程第二課:Java集合框架-HashSet的使用及去重原理
- Spring框架-Java學習路線課程第一課:Spring核心
- Spring框架-Java學習路線課程:Spring的擴展配置
- Springboot框架-Java學習路線課程:Springboot框架的搭建之maven的配置
- java學習:在給學生演示用Myeclipse10.7.1工具生成War時,意外報錯:SECURITY: INTEGRITY CHECK ERROR
- 使用jquery發送Ajax請求的幾種異步刷新方式
- idea Springboot啓動時內嵌tomcat報錯- An incompatible version [1.1.33] of the APR based Apache Tomcat Native
- 一個簡單的SSM框架Demo(登錄(包含攔截器)和註銷