java学习 初始界面

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:
退出请输入32
你还未有账号!请先注册账号。
注册请输入1:
登录请输入2:
退出请输入31
请输入注册账号:33
请输入注册密码:22
退出请输入32
注册请输入1:
登录请输入2:
退出请输入32
你还未有账号!请先注册账号。
注册请输入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:
退出请输入32
你还未有账号!请先注册账号。
注册请输入1:
登录请输入2:
退出请输入31
请输入注册账号:33
请输入注册密码:22
退出请输入32
注册请输入1:
登录请输入2:
退出请输入32
请输入登录账号: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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值