定义带参的方法:
<访问修饰符> 返回类型 <方法名>(<形式参数列表>) {
//方法的主体
}
例如榨汁机的榨汁功能。根据不同水果榨出不同的汁
定义一个 水果参数
定义一个 汁变量来接收水果的参数
然后返回汁的值
public class ZhaZhiJi {
public String Zhazhi(String fuit){
String str=fuit+"汁";
return str;
}
}
填写测试类
调用带参数的方法
对象名.方法名(参数1, 参数2,……,参数n)
public static void main(String[] args) {
ZhaZhiJi zhaZhiJi=new ZhaZhiJi();
String myfruit="香蕉";
String string=zhaZhiJi.Zhazhi(myfruit);
System.out.println(string);
}
}
结果 为香蕉汁
带多个参数的方法
返回值类型为boolean
返回结果为 boolean类型
定义方法带有三个参数
传递也要传递三个参数
例如:
public boolean editName(String oldname,String newname){
boolean find=false;
for (int i=0;i<names.length;i++){
if (names[i]!=null&&names[i].equals(oldname)){
names[i]=newname;
find=true;
break;
}
}
return find;
}
}
如果为空系统会报错,所以要加一个不为空的条件
测试类
System.out.println("请输入要修改的名字");
String old=input.next();
System.out.println("请输入新名字");
String NOW=input.next();
boolean a=customerBiz.editCustomer(old,NOW);
if (a){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
System.out.println("修改后为");
customerBiz.showCustomer();
结果:
数组作为参数:
参数不为变量而是一个数组
例如求一组学生成绩的平均分最高分并按升序排列
利用return返回平均分和最高分的值
public class ScoreSOLC {
public double avg(int []scores){
double avg=0.0;
int sum=0;
for (int i=0;i<scores.length;i++){
sum=sum+scores[i];
}
avg=sum/scores.length;//求平均
return avg;
}
最高分
可以定义max=score是[0];
循环数组如果max<scores[i]
max=scores[i]
public int max(int[] scores){
int max=scores[0];
for (int i=1;i<scores.length;i++){
if (max<scores[i]){
max=scores[i];
}
}
return max;
}
最后利用冒泡排序三步走
循环数组
数字长度-1
数组长度-1-i
交换数据
public void sort(int []scores){
for (int i=0;i<scores.length-1;i++){
for (int j=0;j<scores.length-1-i;j++){
if (scores[j]>scores[j+1]){
int a;
a=scores[j];
scores[j]=scores[j+1];
scores[j+1]=a;
}
}
}
}
编写测试类
public class test5 {
public static void main(String[] args) {
int[]scores={20,50,78,45,15,10};
ScoreSOLC scoreSOLC=new ScoreSOLC();
double avg=scoreSOLC.avg(scores);
System.out.println(avg);
int max=scoreSOLC.max(scores);
System.out.println(max);
scoreSOLC.sort(scores);
for (int i=0;i<scores.length;i++){
System.out.println(scores[i]);
}
}
}
new一个对象
定义avg 来接收 对象中的数组scores的avg方法返回的值
定义max来接收 对象中的数组scores的max方法返回的值
引用对象的sort方法
循环数组打印输出循环后的
结果:
对象作为参数:
参数为一个对象
数据管理的增删改查
通常数据管理的类名都以Biz为结尾
例如
StudentBiz
CustomerBiz
DishBiz等等
例如
定义一个Customer类
姓名 年龄 卡类型 性别属性
要求把属性以数组的形式保存在数组中
添加至数组中
根据姓名查找相应的对象
修改对象对应的姓名
显示数组
Customer类:
public class Customer {
String name;
int age;
String sex;
int num;
String cardType;
public void show(){
System.out.println(num+"\t"+name+"\t"+age+"\t"+sex+"\t"+cardType);
}
}
show方法用来显示数据
CustomerBiz类;
首先用Customer类创建一个数组customers
然后编写第一个增加方法
参数为Customer类 参数要与数组类型一致,否则会报错
例如数组为Customer类,参数为String类,类型不一致,系统会报错
循环数组
因为添加数据,所以要在数组中的空位添加
如果 为空 则把添加数据的参数赋给数组中的空位跳出循环
public void addCustomer(Customer cust){
for (int i=0;i<customers.length;i++){
if (customers[i]==null){
customers[i]=cust;
break;
}//添加数据
}
}
显示数组
因为显示方法所以这里可以不设置参数
循环数组,因为要显示数组中的值,所以空的地方不显示
如果不为空则打印输出数组
public void showCustomer(){
for (int i=0;i<customers.length;i++){
Customer customer=customers[i];
if (customer!=null){
customer.show();
}
}
}
这里引用的是Customer的show方法
查找数据:
方法为定义数组的类型,类型要一致
所以方法为Customer 参数是根据什么变量来查询所对应的对象。
例如根据name 查询就是 String name
循环数组 定义一个Customer类的变量customer来接受数组中的元素customers[i]因为查询带值的元素,所以要不为空
如果不为空并且customer的name属性等于定义方法的的参数name
返回customer的值,否则返回空
public Customer getInfo(String name){
for (int i=0;i<customers.length;i++){
Customer customer=customers[i];
if (customer!=null&&customer.name.equals(name)){
return customer;
}
}
return null;
}
修改
定义一个boolean类型的方法
定义一个boolean 类型的变量a=false
参数为要修改的和修改后的属性变量。
例如修改name
因为这里利用的是多参,测试类中也要返回对应类型的多参
(String oldname,String newname)
循环数组
定义一个 Customer类的变量来接受数组元素customer[i]的值,
如果不为空且customer中的name属性等于定义方法中的oldname属性变量,
则customer中的name属性变量等于定义方法中的newname数形变量
a=true
跳出循环
返回a的值
public boolean editCustomer(String oldname,String newname){
boolean find=false;
for (int i=0;i<customers.length;i++){
Customer customer=customers[i];
if (customer!=null&&customer.name.equals(oldname)){
customer.name=newname;
find=true;
break;
}
}
return find;
}
}
编写测试类分别测试增改查显示四种方法
new两个新对象customer
new一个 customerBiz
然后一个定死一个控制台输入
最后引用customerBiz的增加方法
customerBIz.addCustomer(customer)
customerBIz.addCustomer(customer2)
然后引用显示数组方法
接着控制台输入查询的名字
引用查询方法
如果不为空显示找到了,否则显示没找到
控制台输入修改的名字
修改后的名字
定义一个boolean a来接收修改方法
如果 为true则显示修改成功,否则修改失败
最后打印输出修改后的数据’
import java.util.Scanner;
public class test6 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
Customer customer=new Customer();
CustomerBiz customerBiz=new CustomerBiz();
customer.name="张三";
customer.sex="男";
customer.age=19;
customer.cardType="金卡";
Customer customer2=new Customer();
System.out.println("请输入名字");
customer2.name=input.next();
System.out.println("请输入性别");
customer2.sex=input.next();
System.out.println("请输入年龄");
customer2.age=input.nextInt();
System.out.println("请输入卡类型");
customer2.cardType=input.next();
customerBiz.addCustomer(customer);
customerBiz.addCustomer(customer2);
customerBiz.showCustomer();
System.out.println("请输入你要查询的名字");
String name=input.next();
Customer customer1=customerBiz.getInfo(name);
if (customer1!=null){
System.out.println("找到了");
customer1.show();
}else {
System.out.println("没找到");
}
System.out.println("请输入要修改的名字");
String old=input.next();
System.out.println("请输入新名字");
String NOW=input.next();
boolean a=customerBiz.editCustomer(old,NOW);
if (a){
System.out.println("修改成功");
}else{
System.out.println("修改失败");
}
System.out.println("修改后为");
customerBiz.showCustomer();
}
}
结果: