是不是不能进行静态调用?
代码里面的红色部分是不是可以删掉?因为在属性里面定义了静态,导致了在主方法里面调用老是出错,静态是:只能调用一次的意思吗?
假如定义一个静态数组,是不是每次都只能调用到下标为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 ([b][color=#FF0000]String name[/color][/b]){ //录入用户名 System.out.println("请输入用户名:"); name = sc.next(); return name ; } public String oneshow ([b][color=#FF0000]String pre[/color][/b]){ //录入密码 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("错误!"); } }}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("错误!"); } }}
[解决办法]
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("错误!"); } }}