会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

老师,键盘录入的时候报错,不知道哪里没对?麻烦看下。这个获取用户对象的方法这里也不是很理解,麻烦说下具体是什么意思?

截屏2020-08-02 下午10.29.10.png

下面是代码:

package com.bjsxt.entity;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.net.Socket;
import java.util.Scanner;


public class client {
    /**
     * 1.创建Socket对象,用于连接服务器
     * 2.获取输出流,传递的是user对象所以用(对象流)
     * 3.创建user对象
     * 4.创建的user对象发到服务器
     * 5.获取输入流发过来是"正确或失败"(使用数据流进行获取),数据流用于存取基本数据类型和String类型方法
     * 6.关闭
     *
     * @return
     */
    public static User main(String[] args) throws IOException {
        Socket client = new Socket("localhost", 8888);

        ObjectOutputStream oos = new ObjectOutputStream(client.getOutputStream());

        User user =getUser();//new User("tent","123tx");
        oos.writeObject(user);

        DataInputStream dis = new DataInputStream(client.getInputStream());
        System.out.println(dis.readUTF());

        if (dis != null) {
            dis.close();
        }
        if (oos != null) {
            oos.close();
        }
        if (client != null) {
            client.close();
        }

        //获取用户对象的方法

    private static User getUser() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String userName = input.next();
        System.out.println("请输入密码");
        String password = input.next();
        //封装成User对象
        return new User(userName, password);
    }
    }
}
package com.bjsxt.entity;

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        System.out.println("服务器端已启动");
        /**
         * 1.创建ServerSocket对象
         * 2.建立监听器accept
         * 3.读对象,对象流
         * 4.对用户名和密码进行验证,输出"正确或错误"通过数据流
         * 5.关闭
         */
        ServerSocket server  =new ServerSocket(8888);
        Socket ss =   server.accept();

        ObjectInputStream ois =new ObjectInputStream(ss.getInputStream());//
        User u =(User)ois.readObject();//读对象的时候需要转换为User类型,目前是Object类型
        System.out.println(ss.getInetAddress().getHostAddress()+"请求登陆:用户名"+u.getUserName()+"密码:"+u.getPassword());
        String str ="";
        if ("tent".equals(u.getUserName())&&"123tx".equals(u.getPassword())){
            str ="登陆成功";
        }else{
            str ="对不起,账号密码不正确";
        }

        DataOutputStream dos =new DataOutputStream(ss.getOutputStream());
                dos.writeUTF(str);

        if(dos!=null){
            dos.close();
        }
        if (ois!=null){
            ois.close();
        }
        if (ss!=null){
            ss.close();
        }
    }
}
package com.bjsxt.entity;

import java.io.Serializable;

public class User implements Serializable {
    private static final long serialVersionUID = -7626780842003520333L;//用于封装用户名和密码
    private String userName;
    private  String password;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public User(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }

    public User() {
    }

}


JAVA 全系列/第二阶段:JAVA 基础深化和提高/网络编程(旧) 182楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 185楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/智能电话本项目实战 188楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/手写服务器项目(旧) 189楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术(旧) 191楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 193楼

为什么我的  Scanner.in中的in报错

package in.sxt.时间类;


import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.Scanner;


public class 日历1 {

public static void main(String[]arge) {

/*因为需要键盘的输入,所以需要Scanner,所以创建对象input*/

Scanner input = new Scanner(Scanner.in);

System.out.println("请输入一个日期:yyyy-MM-dd");

String str=input.next();//把键盘输入的值放入str中;

//创建DateFormat对象,将String(字符串)转换成Date()时间类;

DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

Date d=df.parse(str);//会生成一个Date(时间类)df的对象d

//Date对象所表示的时间设置到Calendar中,这样从键盘录入的时间就设置过来了

Calendar cal=new GregorianCalendar();

cal.setTime(d);

//获取输入的日期中的date部分

int nowDate=cal.get(Calendar.DAY_OF_MONTH);//获取每日的时间

//将日期设置成1号

cal.set(Calendar.DAY_OF_MONTH,1);

//获取1号的是星期几

int dayofweek=cal.get(Calendar.DAY_OF_MONTH);

System.out.println("日\t一\t二\t三\t四\t五\t六");//这是打印月历上面个的周几

//for循环,是周几就空几个

for(int i=1; i<dayofweek;i++){     //是周几就往后推几个

System.out.print(i+"\t");

}

//获取输入的月份的最后一天

int maxday = cal.getActualMaximum(Calendar.DAY_OF_MONTH);

for(int i=1;i<maxday;i++) {//利用for循环打印每月的天数(到每月的最后一天),加括号下面的用到i值

System.out.print(i+"\t");

//如果到输出的时间,就加上星

if(i==nowDate) {

System.out.println("*");

}

if(cal.get(Calendar.DAY_OF_WEEK)==7){     //if语句就是让到每周的第七天(周六)就换行

System.out.println();

}

cal.add(Calendar.DAY_OF_MONTH, 1);   //循环每循环增加一次,就会增加一天

}

}

}

这是报的错

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

in cannot be resolved or is not a field


at in.sxt.时间类.日历1.main(日历1.java:13)



JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 194楼



image.png


image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器(旧) 195楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637