java有参方法对象做参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java有参方法对象做参数相关的知识,希望对你有一定的参考价值。
本人初学者,不是很理解,
题目是,1;循环输入会员信息(会员号码和会员积分),2;显示录入的会员信息,3;输入会员号码查询会员积分。用有参方法,类名数组,希望详细点,谢谢
不知道你会不会吃力。。不过这个方法比较优先,希望你能看进去。
这里用到对象数组。
用到对象当参数。其他的,我就不多说了。上代码
/**
* 会员类
* @author ansn001
*
*/
public class Customer
public String custNo; //会员号
public int score; //会员积分
import java.util.Scanner;
/**
* 会员管理类
* @author ansn001
*
*/
public class CustomerManager
// 假设长度为10,也就是存储三个会员,长度自己设置
Customer custs[] = new Customer[3];
Scanner input=new Scanner(System.in);
/**
* 给对象数组赋值
*/
public void initial()
//循环保存十个会员信息
for (int i = 0; i < custs.length; i++)
//创建对象来保存信息
Customer cust = new Customer();
System.out.println("请输入第"+ i +"个会员的会员号:");
//赋值
cust.custNo=input.next();
System.out.println("请输入第"+ i +"个会员的会积分:");
cust.score=input.nextInt();
//给数组赋值
custs[i]=cust;
/**
* 显示会员信息
*/
public void show()
for(int i=0;i<custs.length;i++)
if(custs[i]==null)
break;
System.out.println("第"+ i +"个会员的信息如下:");
//通过对象点操作属性来取值
System.out.print("会员号:"+custs[i].custNo+"\t会员积分:"+custs[i].score);
System.out.println("");
/**
* 根据会员号查询会员信息
* @param custNo
* @return
*/
public Customer getCustByCustNo(String custNo)
Customer cust=null;
for(int i=0;i<custs.length;i++)
if(custs[i]==null)
break;
if(custs[i].custNo.equals(custNo))
cust=custs[i];
break;
return cust;
测试类
import java.util.Scanner;
public class Test
public static void main(String[] args)
Scanner input=new Scanner(System.in);
CustomerManager manager=new CustomerManager();
//初始赋值
manager.initial();
//显示
manager.show();
System.out.println("请输入要查询的会员号:");
String custNo=input.next();
//查询
Customer cust=manager.getCustByCustNo(custNo);
if(cust!=null)
System.out.println("该会员的信息为:");
System.out.print("会员号:"+cust.custNo+"\t会员积分:"+cust.score);
else
System.out.println("查无此会员信息");
参考技术A import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
private String[][] data = new String[100][2];
public String getInput()
String res = null;
BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));// 键盘输入
BufferedReader bufin = new BufferedReader(stdin);
try
res = bufin.readLine();
catch(IOException E)
res = "";
return res;
public void inputData()
boolean flg = true;
int i = 0;
do
if(i > 99) break;
if(flg == true)
System.out.println("输入用户号码:");
flg = false;
else
System.out.println("输入积分:");
flg = true;
String input = getInput();
if(("").equals(input))
break;
else if(flg == false)
data[i][0] = input;
else if(flg == true)
data[i][1] = input;
i++;
while(true);
public void printData()
System.out.println("=======已录入用户===============");
for(int j = 0; j < 100; ++j)
if(data[j][0] == null) break;
if(("").equals(data[j][0])) break;
System.out.println("用户号码:" + data[j][0] + " 积分:" + data[j][1] );
System.out.println("================================");
public void getData(String input)
for(int j = 0; j < 100; ++j)
if(input.equals(data[j][0]))
System.out.println("用户号码:" + data[j][0] + " 积分:" + data[j][1] );
return;
public static void main(String[] args) throws InterruptedException
Test t1 = new Test();
do
System.out.println("用户信息查询和录入");
System.out.println("1.用户信息录入");
System.out.println("2.显示所有用户信息");
System.out.println("3.查看用户积分");
System.out.println("other.退出");
String input;
int choose = 0;
try
input = t1.getInput();
choose = Integer.parseInt(input);
catch(NumberFormatException E)
choose = 0;
switch(choose)
case 1:
t1.inputData();//输入数据
break;
case 2:
t1.printData();//打印数据
break;
case 3:
System.out.println("输入用户号码:");
input = t1.getInput();
t1.getData(input);//查询数据
break;
default:
System.out.println("退出");
System.exit(0);
break;
while(true);
参考技术B class gouzao
int a,b;
Canvas canvas;
public gouzao(int x,int y,Canvas canvas)
this.a = x;
this.b = y;
this.canvas = canvas;
function(5);
public void function(int x)
System.out.println(x);
public static void main(String[] args)
Canvas c = new Canvas();
new gouzao(1,2,c);
这样写才是对的。 这段代码不能运行,因为没有Canvas的定义,你可以把写一个Cavnas类,就可以了。看程序,其实形参实参定义真的不重要,只是名字而已,public gouzao(int x,int y,Canvas canvas)里面的叫形参,gouzao(1,2,c);里面的叫实参,至于为什么这是取名子的人写的,用不着纠结,学编程跟学其他的不一样,最忌纠结没用的定义,但是我认为这个例子重要的是过程调用和构造函数,构造函数是new gouzao(1,2,c)这句话要调用的函数,这个函数把gouzao这个类的a,b,canvas成员变量赋值,然后调用了function,所以当你 new gouzao(1,2,c);时,会输出5.就是把5这个变量传参到function,function使用这个x(现在值为5)
Java的有参无参和变量
1.有参数无返回值的方法
无参数无返回值的方法是形式最为简单的一种方法,但是功能上存在很大的局限性,若要实现更加灵活的功能,可以为方法提供参数,这样会大大提升方法的灵活性。
语法:访问修饰符 void 方法名(形式参数列表)
方法体;
调用语法:方法名(实际参数列表);
示例:实现按指定次数输出指定信息。
public class ShowMsgDemo
//定义方法实现按指定次数输出指定信息
public void showMsg(String message, int count)
for (int i = 0; i < count; i++)
System.out.println(message);
public static void main(String[] args)
Scanner sc = new Scanner(System.in);
System.out.println("请输入要输出的信息:");
String msg = sc.nextLine();//不会在缓冲区保留\\r
System.out.println("请输入要输出的次数:");
int nums = sc.nextInt();
//调用方法
ShowMsgDemo smd = new ShowMsgDemo();
smd.showMsg(msg, nums);
2.参数传递过程
方法参数是主调方法与被调方法进行数据传递的主要渠道,方法的参数分为形式参数和实际参数两种:
- 形式参数出现在方法定义中,在整个方法内部有效。
- 实际参数出现在主调方法中,其作用是将实参的值传递给被调方法的形参,从而实现主调方法向被调方法传递数据的功能。
要实现正确的参数传递,形参列表与实参列表在参数的个数、类型以及顺序上必须一一对应。
3.成员变量和局部变量
类中定义的属性为成员变量,方法内部定义的变量为局部变量。
成员变量
成员变量指的是在类范围里定义的变量,也就是属性。
语法:实例.实例成员名
每个实例的实例成员被实例所拥有,相同类型类的不同实例,它们的实例字段互不影响。
示例:
public static void main(String[] args)
People p1 = new People();
p1.name = "张三";
p1.money = 1000;
People p2 = new People();
p2.name = "李四";
p2.money = 5000;
// 调用方法
p1.showMoney();
p2.showMoney();
局部变量
局部变量分为三类:
- 方法的参数
- 方法内部声明的变量
- 代码块中声明的变量。
示例:成员变量和局部变量同名
//成员变量
String name = "zhangsan";
public void test()
//局部变量
String name = "lisi";
System.out.println(name);
public static void main(String[] args)
SameNameDemo snd = new SameNameDemo();
snd.test();
总结:
- 定义方法要确定访问修饰符、返回类型、方法名和参数列表。
- 方法的参数分为形参与实参,形参是方法定义时在参数列表中声明的参数,实参是调用方法时传给形参的值。
- 类中的变量分为成员变量和局部变量,成员变量是类的属性,局部变量是指在方法中或方法语句块中定义的变量。 成
- 员变量与局部变量的作用域不同,成员变量能在类的所有方法中使用,局部变量只能在声明它的方法中或声明它的语句块中使用。
以上是关于java有参方法对象做参数的主要内容,如果未能解决你的问题,请参考以下文章