首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Java入门-Java学习路线课程第八课:方法和方法重载

  • 25-02-21 23:40
  • 4376
  • 5816
blog.csdn.net

本博客地址 | GitHub | 更多资源免费下载

       小伙伴们,大家好!感谢大家的支持!今天我给大家带来方法的使用,非常重要。许多小伙伴在这章就开始懵了,希望给大家带来不一样的早餐。

       前面我们学过了没有带参方法,即无参方法,今天我们来学习一下有参方法和方法重载。

JavaSE方法和方法重载

文章目录

          • 1、定义带参方法:
          • 2、调用带参数的方法
          • 3、引出来许多新的技术点:
          • 4、带参方法的演示案例1:
          • 5、带参方法的演示案例2:
          • 6、增加学生的演示案例:
          • 7、基本数据类型和引用数据类型传递值的区别:
          • 8、基本数据类型和引用数据类型传递值的演示案例:
          • 9、基本数据类型和引用数据类型传递值的演示案例内存图:
          • 10、成员变量和局部变量的区别
          • 11、构造方法语法:
          • 12、构造方法特点:
          • 13、声明有参构造方法后要注意的事项:
          • 14、构造方法作用
          • 15、方法重载的构成
          • 16、重载、构造方法、this的使用和变量的作用域的使用演示案例:
          • 17、编写代码时经常无故报错:
          • 18、小伙伴们,本章已经结束,你们都懂了吗?记得关注、点赞和分享噢!有疑问或好的建议请与我联系噢!下次给大家讲封装和继承噢!敬请关注!

1、定义带参方法:
修饰符 返回值(有返回值和无返回值) 方法名(类型 变量名,[参数2,参数3,....]){//形参
   //方法内容 执行代码块
}
  • 1
  • 2
  • 3
2、调用带参数的方法
对象名.方法名(参数1, 参数2,……,参数n)//实参
  • 1
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+"汁");
	}
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
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);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
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);
	}	
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
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);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
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]);
			}
		}
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
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;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
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);
	}	
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
9、基本数据类型和引用数据类型传递值的演示案例内存图:

在这里插入图片描述

10、成员变量和局部变量的区别
  • 作用域不同

    • 局部变量的作用域仅限于定义它的方法
    • 成员变量的作用域在整个类内部都是可见的
  • 初始值不同

    • Java会给成员变量一个初始值
    • Java不会给局部变量赋予初始值
  • 是否可以同变量名?

    • 在同一个方法中,不允许有同名局部变量
    • 在不同的方法中,可以有同名局部变量
    • 在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级
11、构造方法语法:
访问修饰符   构造方法名 ( ) { 
       //初始化代码
}
  • 1
  • 2
  • 3
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);
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
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(登录(包含拦截器)和注销

更多免费资源请关注微信公众号:

文章知识点与官方知识档案匹配,可进一步学习相关知识
Java技能树首页概览150366 人正在系统学习中
注:本文转载自blog.csdn.net的青云交的文章"https://blog.csdn.net/atgfg/article/details/101674526"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top