是不是不能进行静态调用?

student-ai 2012-05-29 12:14:55

代码里面的红色部分是不是可以删掉?因为在属性里面定义了静态,导致了在主方法里面调用老是出错,静态是:只能调用一次的意思吗?

假如定义一个静态数组,是不是每次都只能调用到下标为0的值呢?



package cn.puruidong.accp_15;

/**
* @author PuRuidong
*
*/
/*
* 输入用户名及密码,在验证的时候,忽略大小写
*/
import java.util.Scanner;
public class Test1 {
private static String name ; //名字
private static String pre ; //密码
private static Scanner sc = new Scanner (System.in);

public String show (String name){ //录入用户名
System.out.println("请输入用户名:");
name = sc.next();
return name ;
}

public String oneshow (String pre){ //录入密码
System.out.println("请输入密码:");
pre = sc.next();
return pre ;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Test1 center = new Test1 ();
String name1; //定义第二次录入的名字
String pre1; //定义第二次录入的密码
center.show();//调用输入用户名
center.oneshow(); //调用输入密码
System.out.println("请再次输入用户名:");
name1 = sc.next(); //验证用户名
System.out.println("请再次输入密码:");
pre1 = sc.next(); //验证密码
if (pre1.length()<3){ //密码长度小于3时,退出程序
System.out.println("录入错误,退出程序!");
System.exit(0);
}
if ((name1.equalsIgnoreCase(name))&&(pre1.equalsIgnoreCase(pre))){//忽略大小写,当两值相等输出正确
System.out.println("************************");
System.out.println("正确!");
}else {
System.out.println("************************");
System.out.println("错误!");
}
}
}





...全文
109 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿_伦 2012-05-29
  • 打赏
  • 举报
回复
静态方法在使用的时候其实可以用对象.方法来调用。可以不用实例化对象的,因为静态的是属于整个类所有的,不是某一个对象的.......然后就是两个方法中不需要参数的。。。。。。
sffx123 2012-05-29
  • 打赏
  • 举报
回复

public class Test1 {
private String name; // 名字
private String pre; // 密码

public void show(String name) { // 录入用户名
this.name = name;
}

public void oneshow(String pre) { // 录入密码
this.pre = pre;
}

/**
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Test1 center = new Test1();
System.out.println("请输入用户名:");
String name = sc.next();
System.out.println("请输入密码:");
String pre = sc.next();
center.show(name);
center.oneshow(pre);
System.out.println("请再次输入用户名:");
String name1 = sc.next(); // 验证用户名
System.out.println("请再次输入密码:");
String pre1 = sc.next(); // 验证密码
if (pre1.length() < 3) { // 密码长度小于3时,退出程序
System.out.println("录入错误,退出程序!");
System.exit(0);
}
if ((name1.equalsIgnoreCase(name)) && (pre1.equalsIgnoreCase(pre))) {// 忽略大小写,当两值相等输出正确
System.out.println("************************");
System.out.println("正确!");
} else {
System.out.println("************************");
System.out.println("错误!");
}
}
}
static关键字不要乱使用,它用来声明变量表示的是类的属性,是全局唯一的,所有对象都相同,而姓名跟密码应该是每个对象都不同的,
sdojqy1122 2012-05-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
[/Quote]

public static String show (String msg){ //录入用户名
System.out.println(msg);
String data = sc.next();
return data;
}

修正错误
sdojqy1122 2012-05-29
  • 打赏
  • 举报
回复
public String show (String name){ //录入用户名
System.out.println("请输入用户名:");
name = sc.next();
return name ;
}

public String oneshow (String pre){ //录入密码
System.out.println("请输入密码:");
pre = sc.next();
return pre ;
}
楼主有几个误区,你这么值根本传不到 name 和pre 里面去。引用传递问题。
除非
name = center.show();
pre = center.onshow();
其次不推荐用这样用static,容易并发。静态属性属于类的,不属于实例。

import java.util.Scanner;
public class Test{

private static Scanner sc = new Scanner (System.in);

public static String show (String msg){ //录入用户名
System.out.println("请输入用户名:");
String data = sc.next();
return data;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
String name1; //定义第二次录入的名字
String pre1; //定义第二次录入的密码
String name = Test.show("请输入用户名:");//调用输入用户名
String pre = Test.show("请输入密码:"); //调用输入密码
name1 = Test.show("请再输入用户名:");//验证用户名
pre1 = Test.show("请再次输入密码:");//验证密码
if (pre1.length()<3){ //密码长度小于3时,退出程序
System.out.println("录入错误,退出程序!");
System.exit(0);
}
if ((name1.equalsIgnoreCase(name))&&(pre1.equalsIgnoreCase(pre))){//忽略大小写,当两值相等输出正确
System.out.println("************************");
System.out.println("正确!");
}else {
System.out.println("************************");
System.out.println("错误!");
}
}
}
WayneXuan 2012-05-29
  • 打赏
  • 举报
回复
静态不是只能调用一次,而是该类的所有对象共享同一个值
show()方法和onshow()方法都不应有参数,应该删掉

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧