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有参方法对象做参数的主要内容,如果未能解决你的问题,请参考以下文章

在java语言里如何在子类中调用父类的有参构造函数

java中含参函数怎么调用

Java中如何在无参构造方法中调用有参构造方法,希望最好有个例子,谢谢

Java中如何在无参构造方法中调用有参构造?

Java的有参无参和变量

Java的有参无参和变量