java学习 | 初始界面
一、包含内容:
三 部分:注册、登录、退出。
完成代码如下:
import java.util.*;
public class Csjm{
static int count = 0;
static String logonName = new String();
static String logonCode = new String();
static String registerName = new String();
static String registerCode = new String();
public static void main(String[] args){
new Csjm().jiang();
}
public void jiang()
{
Scanner in = new Scanner(System.in);
System.out.println("注册请输入1:");
System.out.println("登录请输入2:");
System.out.println("退出请输入3:");
int zc = in.nextInt();
if(zc == 1){
new Csjm().logon();
}
else if(zc == 2 ){
new Csjm().register();
}
else if(zc == 3){
new Csjm().quit();
}
else{
System.out.println("指令错误!");
new Csjm().jiang();
}
}
public void logon(){
Scanner an = new Scanner(System.in);
System.out.print("请输入注册账号:");
logonName = an.nextLine();
System.out.print("请输入注册密码:");
logonCode = an.nextLine();
System.out.print("退出请输入3:");
int tc = an.nextInt();
if(tc == 3){
new Csjm().quit();
}
count = 1;
new Csjm().jiang();
}
public void register(){
if(count == 0){
System.out.println("你还未有账号!请先注册账号。");
new Csjm().jiang();
}
else if(count == 1){
Scanner bn = new Scanner(System.in);
System.out.print("请输入登录账号:");
registerName = bn.nextLine();
System.out.print("请输入登录密码:");
registerCode = bn.nextLine();
if(registerName.equals(logonName) && registerCode.equals(logonCode)){
System.out.println("你已成功登录!");
}
else{
System.out.print("账号或者密码错误!");
new Csjm().register();
}
System.out.print("退出请输入3:");
int tc2 = bn.nextInt();
if(tc2 == 3){
new Csjm().quit();
}
}
}
public void quit(){
System.out.println("你已成功退出!");
}
}
二、遇到的问题:
1.
Csjm.java:4: 错误: 需要'('或'['
static String logonName = new String;
解决方案:
static String logonName = new String;
改成:
static String logonName = new String();
知识点:
String name 和 String name=new String()的区别
String name;只是申明了name变量,但没有分配内存空间。
String name=new String();申明name变量,并实例化,分配内存空间。
2.
错误: 找不到符号
Scanner an = new Scanner(System.an);
解决方案:
将“System.an”中的“an”改为“in”。
3.
问题:登录时储存不了账号和密码。
C:\Users\俗子寻衿>javac -encoding UTF-8 *.java
C:\Users\俗子寻衿>java Csjm
注册请输入1:
登录请输入2:
退出请输入3:
2
你还未有账号!请先注册账号。
注册请输入1:
登录请输入2:
退出请输入3:
1
请输入注册账号:33
请输入注册密码:22
退出请输入3:2
注册请输入1:
登录请输入2:
退出请输入3:
2
你还未有账号!请先注册账号。
注册请输入1:
登录请输入2:
退出请输入3:
解决方案:
int count = 0;
String logonName = new String();
String logonCode = new String();
String registerName = new String();
String registerCode = new String();
改成:
static int count = 0;
static String logonName = new String();
static String logonCode = new String();
static String registerName = new String();
static String registerCode = new String();
成功后:
C:\Users\俗子寻衿>javac -encoding UTF-8 *.java
C:\Users\俗子寻衿>java Csjm
注册请输入1:
登录请输入2:
退出请输入3:
2
你还未有账号!请先注册账号。
注册请输入1:
登录请输入2:
退出请输入3:
1
请输入注册账号:33
请输入注册密码:22
退出请输入3:2
注册请输入1:
登录请输入2:
退出请输入3:
2
请输入登录账号:33
请输入登录密码:22
你已成功登录!
退出请输入3:
知识点:
静态变量与实例变量的区别:
1、 静态变量也叫类变量,变量前加static修饰符。可以使用类名调用和对象调用,所有对象的同一个类变量共享同一块内存空间。
2、实例变量也叫对象变量,没有static修饰符。只能通过对象调用, 所有对象的同一个实例变量共享不同的内存空间的。
3、静态变量是所有对象共有的,某一个对象将它的值改变,其他对象再去获取它的值,得到的是改变后的值;
4、实例变量则是每一个对象私有的,某一个对象将它的值改变了,不影响其他对象取值的结果,其他对象仍会得到实例变量一开始就被赋予的值。
5、静态成员变量所有的实例对象都共用一个静态变量,内存中只有同一处空间存放这个静态变量值的。因此,如果一个对象把静态变量值改了,另外一个对象再取静态变量值就是改过之后的值了。
6、在创建实例对象的时候,内存中会为每一个实例对象的每一个非静态成员变量开辟一段内存空间,用来存储这个对象所有的非静态成员变量值。即使两个不同的实例对象是属于同一个类,它们的同名非静态成员变量在内存中占用的空间是不同的。
静态方法和非静态方法的区别:
1、在内存中的存储位置:
(1)静态方法和静态变量创建后始终使用同一块内存,是连续的。
(2)非静态方法会存在于内存的多个地方,是离散的。
————————————————
版权声明:本文为CSDN博主「tangmz2020」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tangmz2020/article/details/127997447