本博客地址 | GitHub | 小站坐坐
小伙伴们,大家好!感谢大家的支持!今天我给大家带来方法的使用,非常重要。许多小伙伴在这章就开始懵了,希望给大家带来不一样的早餐。
前面我们学过了没有带参方法,即无参方法,今天我们来学习一下有参方法和方法重载。
修饰符 返回值(有返回值和无返回值) 方法名(类型 变量名,[参数2,参数3,....]){//形参
//方法内容 执行代码块
}
对象名.方法名(参数1, 参数2,……,参数n)//实参
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);
}
}
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);
}
}
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]);
}
}
}
}
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);
}
}
作用域不同
初始值不同
是否可以同变量名?
访问修饰符 构造方法名 ( ) {
//初始化代码
}
无返回值类型
方法名与类名相同
既可以声明无参构造方法
也可以声明有参构造方法
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);
}
}
更多免费资源请关注微信公众号: