java方法与方法重载

在这里插入图片描述

//榨汁机类
public class ZhazhiJi {
    public String zhazhi ( String fruit ) {
          String juice = fruit + "汁";
          return juice; 
     }
    
    public static void main(String[] args){
    	/*调用zhazhi方法*/
    	ZhazhiJi myZhazhiji = new ZhazhiJi();
    	String myFruit = "苹果";
    	String myJuice = myZhazhiji.zhazhi(myFruit);
    	System.out.println(myJuice);
    }
}

/**
 * 
 * 实现学生信息的管理 
 *
 */
public class StudentsBiz {
	String[] names = new String[30];  // 学员姓名数组
	
	/**
	 * 增加学生姓名
	 * @param name要增加的姓名
	 */
	public void addName(String name){
		for(int i =0;i<names.length;i++){
			if(names[i]==null){
				names[i]=name;
				break;
			}
		}
	}
	/**
	 * 显示本班的学生姓名
	 */
	public void showNames(){
		System.out.println("本班学生列表:");
		for(int i =0;i<names.length;i++){
			if(names[i]!=null){
				System.out.print(names[i]+"\t");
			}
		}
		System.out.println();
	}
	
	
	/**
	 * 在一定区间查找学生姓名
	 * @param start 开始位置
	 * @param end 结束位置
	 * @param name 查找的姓名
	 * @return find 是否查找成功
	 */
	public boolean searchName(int start,int end,String name){
		boolean find = false;  // 是否找到标识
		
		// 指定区间数组中,查找姓名
		for(int i=start-1;i<end;i++){
			if(names[i].equals(name)){				
				find=true;
				break;
			}
		}
		return find;
	}
}


import java.util.Scanner;

public class TestSearch {
		/**
		 * 调用带3个参数的方法
		 */
		public static void main(String[] args) {
			StudentsBiz st = new StudentsBiz();
			Scanner input = new Scanner(System.in);
			for(int i=0;i<5;i++){
				System.out.print("请输入学生姓名:");
				String newName = input.next();		
				st.addName(newName);
			}		
			st.showNames();				
			System.out.print("\n请输入开始查找的位置:");
			int s = input.nextInt();
			System.out.print("请输入结束查找的位置:");
			int e = input.nextInt();
			System.out.print("请输入查找的姓名:");
			String name = input.next();
			System.out.println("\n*****查找结果*****");
			if(st.searchName(s,e,name)){
				System.out.println("找到了!");
			}
			else{
				System.out.println("没找到该学生!");
			}
	}
}

在这里插入图片描述

基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用

//修改学生成绩
//学生类
public class Student {
	//属性
	public String name;//姓名
	public int score;
	
	//方法
	public void showInfo(){
		System.out.println(name+"的成绩是:"+score);
	}
}



public class ModifyScore {
	//修改学员成绩,少于60的提高2分
	public void modifyScore(Student[] stus){
		for(int i=0;i<stus.length;i++){
			if(stus[i].score<60){
				stus[i].score+=2;
			}
		}
	}
	
	//输出学员信息
	public void showInfo(Student[] stus){
		for(Student stu:stus){
			stu.showInfo();
		}
	}

	public static void main(String[] args) {
		ModifyScore ms=new ModifyScore();
		Student[] stus=new Student[3];
		Student s1=new Student();
		s1.name="张三";
		s1.score=40;
		Student s2=new Student();
		s2.name="李四";
		s2.score=90;
		Student s3=new Student();
		s3.name="王五";
		s3.score=43;
		stus[0]=s1;
		stus[1]=s2;
		stus[2]=s3;
		
		ms.modifyScore(stus);
		ms.showInfo(stus);
	}

}

//构造方法
package structMehtod;
//学生类
public class Student {
	//属性
	public String name;//姓名
	public int score;
	
	public Student(String name,int score){
		this.name=name;
		this.score=score;
	}
	//方法
	public void showInfo(){
		System.out.println(name+"的成绩是:"+score);
	}
}

//方法重载
package structMehtod;

public class Calc {
	public int getSum(int num1,int num2){
		System.out.println("int");
		return num1+num2;
	}
	
	public double getSum(double num1,double num2){
		System.out.println("double");
		return num1+num2;
	}
	
	public double getSum(double num1,double num2,double num3){
		return num1+num2+num3;
	}
	
	public static void main(String[] args) {
		Calc calc=new Calc();
		System.out.println(calc.getSum(67, 89));
		System.out.println(calc.getSum(67, 89,78.4));
	}
}

首先,要弄清楚何为重载。方法名相同,参数列表不同的方法,这两个要素要谨记,参数列表不同即参数数据类型、参数数量、参数排列顺序不同。
如:void print(int age,String name)和void print(String name,int age) 。
重写就是发生在父类和子类关系的类中,子类定义了与父类的完全相同的方法,只是方法体不同。注意定义中提到了继承(父类、子类)。所以,还有一个不同之处就是重写不在同一个类中,而重载在同一个类中发生

//简易计数器
public class Calc {
	public int getSum(int num1,int num2){
		return num1+num2;
	}
	
	
	public double getSum(double num1,double num2,double num3){
		return num1+num2+num3;
	}
	
	public static void main(String[] args) {
		Calc calc=new Calc();
		System.out.println(calc.getSum(67, 89));
		System.out.println(calc.getSum(67, 89,78.4));
	}
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值