Java面向对象——方法与方法重载

带参方法

无参方法:

public void show(){
    System.out.println("姓名:"+name",密码"+password);
}

show() “()”里就是放的参数

“()”里放参数就指的是带参方法

带参方法:

实现功能需要条件,这个条件就需要通过参数来传递

定义、调用带参数的方法:

带参方法的注意事项

注意事项

1)方法定义处的参数叫形式参数(形参),方法调用处传的值叫实际参数(实参)

2)带参方法,参数个数可以有一个,也可以有多个,多个参数之间用逗号隔开

3)带参方法,参数名字可以随意取,符合变量命名规则

4)形参和实参名字可以不一样,但是数据类型要一致,个数要一样,顺序要一样

方法有没有参数和方法有没有返回值,是两码事,毫无关系

常见错误:

调用方法不能指定实参啊类型

形参和实参数据类型要一致!数量也要一致!

参数类型

参数类型为基本数据类型:int char double boolean float

参数类型为引用数据类型,自定义数据类型 数组 接口

基本数据类型和引用数据类型在传参时的区别:

参数传递

1)基本数据类型,传递值

2)引用数据类型,传递引用

构造方法

构造方法的作用

无参构造方法,每个类都有个默认无参构造方法

构造方法:

访问修饰符 构造方法名(){
    //初始化代码
}

自定义带参构造方法

此时系统不再提示默认无参构造方法

public Student(){}
public Student(String name,int age){
    this.name=name;
    this.age=age;
}

this关键字的用法

构造方法

作用∶对象初始化

1)每个类都有默认无参构造方法

2)可以自定义带参构造方法,此时系统不再提供默认无参构造方法

this

对一个对象的默认引用

方法重载

构造方法重载

1.方法名相同

2.参数项不同

3.与返回值、访问修饰符无关

public Student(){}
public Student(String name,int age){
    this.name=name;
    this.age=age;
}

方法重载(一个类中的多态表现)

1)同一个类中

2)方法名相同

3)参数个数或类型不同

4)与返回值、访问修饰符无关

成员变量和局部变量

变量声明的位置决定变量作用域

变量作用域确定可在程序中按变量名访问该变量的区域

成员变量和局部变量的区别:

作用域不同

局部变量的作用域仅限于定义它的方法

成员变量的作用域在整个类内部都是可见的

初始值不同

Java会给成员变量一个初始值

Java不会给局部变量赋予初始值

注意:

在同一个方法中,不允许有同名局部变量

在不同的方法中,可以有同名局部变量

在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级

练习:

1.实现简易计算器,分别实现两个整数、三个浮点数的加法运算

//计算机类
public class Calculator {

	public int add1(int num1, int num2) {
		return num1 + num2;
	}

	public float add2(double num1, double num2, double num3) {
		return (float) (num1 + num2 + num3);
	}
}
//测试类
public class Calculator {

	public int add1(int num1, int num2) {
		return num1 + num2;
	}

	public float add2(double num1, double num2, double num3) {
		return (float) (num1 + num2 + num3);
	}
}

2.使用带参方法实现学员信息管理
1)根据学员姓名增加学员.
2)在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功

//信息管理类
public class StudentManger {
	String[] stuName = new String[5];
	Student[] score = new Student[5];
	Scanner input = new Scanner(System.in);

	public void addStudent(String name) {
		for (int i = 0; i <= stuName.length;) {
			if (stuName[i] == null) {
				stuName[i] = name;
				System.out.println("添加成功!");
				i++;
			}
			break;
		}

	}

	public boolean searchName(int start, int end, String name) {// 查找方法
		boolean flag = false;

		if (start >= 0 && end < stuName.length && start <= end) {
			for (int i = start; i < end; i++) {
				if (name.equals(stuName[i])) {

					flag = true;
					break;
				}

			}
		}

		return flag;
	}

	public void addScore(Student[] scores) {// 学员成绩

		for (int j = 0; j < score.length; j++) {
			if (scores[j].score < 60) {
				scores[j].score += 2;
			} else if (scores[j].score >= 99) {
				scores[j].score = 100;
			}
		}

	}

	public void showScore(Student[] scores) {// 显示学生成绩
		System.out.println("学员成绩:");
		for (Student scoreList : scores) {
			scoreList.showInfo();
		}
	}

}
//测试类
public class TestStu {
	public static void main(String[] args) {
		StudentManger stuMan = new StudentManger();
		Scanner input = new Scanner(System.in);
		for (int i = 0; i < stuMan.stuName.length; i++) {
			System.out.println("请输入第" + (i + 1) + "个同学的名字:");
			String name = input.next();
			stuMan.addStudent(name);

		}
		System.out.print("请输入你要查找的名字:");
		String names = input.next();
		boolean flag = stuMan.searchName(0, 2, names);
		if (flag) {
			System.out.println("该学生名字存在!");
		} else {
			System.out.println("没有查到该同学名字");
		}

		input.close();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值