Day9:2023.4.27

一、面向对象

        1、对象是具有明确的行为(方法)和特征(属性|变量)的实体

        2、对象的行为:指的是方法,代表对象能干什么

              对象的特征:指的是属性,代表对象有什么

二、类和对象

        1、创建类:确定类名>>编写成员变量>>编写成员方法

        2、创建对象:        类名  对象名 = new  类名();

             创建对象是在主程序中创建

//创建类:不在主程序中

public class Student { //学生对象模板    
    //属性(变量)    成员属性(变量)
    String name;
    int age;
    String sex;
    double score;
    //方法        成员方法
    public void study() {
        System.out.println("学习");
    }    
    public void sleep() {
        System.out.println("睡觉");
    }    
}

//创建对象

public class TestStudent {
    public static void main(String[] args) {
        //创建Student对象
        Student stu = new Student();
        //使用对象(1、给对象属性赋值和取值  2、调用对象的方法)
        //给对象属性赋值
        stu.name = "张三";
        stu.age = 20;
        stu.sex = "男";
        stu.score = 100;
        //对象属性取值
        System.out.println(stu.name);
        System.out.println(stu.age);
        System.out.println(stu.sex);
        System.out.println(stu.score);
        //调用对象的方法
        stu.study();
        stu.sleep();
        //============================================================
        Student stu1 = new Student();
        //重复上面的事情    
    }
}

3、类和对象的关系

        类:定义了对象应具有的特征和行为,类是对象的模板

        对象:拥有多个相同特征和行为的实体,对象是类的实例

        面向对象就是从具体到抽象,再从抽象到具体的过程

三、实例变量和局部变量

区别局部变量实例变量
位置定义在方法内定义在方法外,类的里面
默认值没有默认值系统提供默认值,与之前讲的数组一致
作用域所在的{}在整个类中
重名在不同的作用域可以重名不能重名
生命周期方法执行完被销毁当对象被销毁的时候销毁

PS:局部变量和实例变量重名时,java遵循就近原则

四、方法的重载

        在同一个类中,方法名相同,参数不同(参数的数量或类型)

五、构造方法

        1、默认存在一个无参构造

        2、当构造一个有参构造时,原来系统的无参构造消失,因此通常保留一个无参构造

        3、构造方法名必须与类名完全一致

         方法:右键>>Generate...>Constructor>

        Select  None        为无参构造

        OK        为有参构造,可选参数数量

 六、this关键字

        1、表示当前类,在当前类中可以省略

        2、当成员变量和局部变量重名时,就近原则

        3、调用方法:this.方法名();        必须在第一行

七、综合案例

        使用对象数组完成用户登录注册操作

        1、主函数

         2、构造

         3、

 附程序:

import java.util.Arrays;
public class UserManage {
    User[] users={};
    int size=0;
    //判断是否存在
    public boolean isCZ(String name){
        for (int i = 0; i < size; i++) {
            if(name.equals(users[i].name)){
                return true;
            }
        }
        return false;
    }
    //注册
    public boolean zhuce(User user){
        boolean flag=isCZ(user.name);
        if(flag){
            System.out.println("该账号已存在,注册失败!");
            return false;
        }
        if(size==users.length){
            users= Arrays.copyOf(users,users.length+1);
        }
        users[size]=user;
        size++;
        return true;
    }
    //输出
    public void pri(){
        for (int i = 0; i < size; i++) {
            System.out.println("姓名为:"+users[i].name+"\t"+"密码为:"+users[i].password);
        }
    }
    //登录
    public boolean denglu(User user){
        if(!isCZ(user.name)){
            System.out.println("该用户不存在");
            return false;
        }else{
            for (int i = 0; i < size; i++) {
                if(user.name.equals(users[i].name) && user.password==users[i].password){
                    System.out.println("登陆成功");
                    return true;
                }else{
                    System.out.println("登陆失败");
                }
            }
        }
        return false;
    }
}

4、管理操作界面

import java.util.Scanner;
public class View {
    public void view(){
        UserManage um=new UserManage();
        Scanner sc=new Scanner(System.in);
        System.out.println("----------------欢迎进入登陆系统----------------");
        while(true){
            System.out.println("1、注册\t2、登录\t3、查询\t4、退出");
            int choose=sc.nextInt();
            switch (choose){
                case 1:
                    System.out.println("请输入用户名:");
                    String name=sc.next();
                    System.out.println("请输入密码:");
                    int password=sc.nextInt();
                    User user1=new User(name,password);
                    um.zhuce(user1);
                    break;
                case 2:
                    System.out.println("请输入用户名:");
                    String name2=sc.next();
                    System.out.println("请输入密码:");
                    int password2=sc.nextInt();
                    User user2=new User(name2,password2);
                    um.denglu(user2);
                    break;
                case 3:
                    um.pri();
                    break;
                case 4:
                    System.out.println("退出成功");
                    return;
            }
        }
    }
}

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值