Java 面向对象案例 03(黑马)

代码:

public class phoneTest {
    public static void main(String[] args) {

        phone [] arr = new phone[3];

        phone p1 = new phone("华为",6999,"白色");
        phone p2 = new phone("vivo",4999,"蓝色");
        phone p3 = new phone("苹果",7999,"黑色");

        arr[0]=p1;
        arr[1]=p2;
        arr[2]=p3;

        double avg = (p1.getPrice()+ p2.getPrice()+p3.getPrice())/3;
        System.out.println(avg);

    }
}
public class phone {
    private String brand;
    private double price;
    private String color;

    public phone() {
    }

    public phone(String brand, double price, String color) {
        this.brand = brand;
        this.price = price;
        this.color = color;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }
}

运行结果:

代码:

public class girlTest {
    public static void main(String[] args) {
        girl [] arr = new girl[4];

        girl g1 = new girl("小红",18,'女',"跳舞");
        girl g2 = new girl("小芳",22,'女',"唱歌");
        girl g3 = new girl("小刘",23,'女',"骑车");
        girl g4 = new girl("小美",19,'女',"爬山");

        arr[0]=g1;
        arr[1]=g2;
        arr[2]=g3;
        arr[3]=g4;

        double sum=0;
        for(int i=0;i<arr.length;i++){
            girl girl=arr[i];
            sum+=girl.getOld();
        }
        double avg = sum/arr.length;
        System.out.println(avg);
        int count=0;//统计思想

        for(int i=0;i<arr.length;i++){

            girl girl=arr[i];
            if(girl.getOld()<avg) {
                count++;
                System.out.println(girl.getName() + "," + girl.getOld() + "," + girl.getHobby() + "," + girl.getSex());
            }
        }
        System.out.println("有"+count+"个");

    }
}
public class girl {
    private String name;
    private int old;
    private char sex;
    private String hobby;

    public girl() {
    }

    public girl(String name, int old, char sex, String hobby) {
        this.name = name;
        this.old = old;
        this.sex = sex;
        this.hobby = hobby;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getOld() {
        return old;
    }

    public void setOld(int old) {
        this.old = old;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }
}

代码结果:

自己写的代码:

import java.sql.SQLOutput;
import java.util.Scanner;
public class studentTest {
    public static void main(String[] args) {

        Scanner input = new Scanner (System.in);
        student [] arr = new student[3];

        student s1 = new student("heima001","小白",19);
        student s2 = new student("heima002","小黑",19);
        student s3 = new student();

        arr[0]=s1;
        arr[1]=s2;
        arr[2]=s3;

        System.out.println("输入第3个同学的学号:");

        boolean flag = true;
        do {
            String n = input.next();
            if ((!n.equals(s1.getNov())) && (!n.equals(s2.getNov()))) {
                s3.setNov(n);
                flag=false;
            } else {
                System.out.println("该用户已存在,输入失败,请重新输入:");
            }
        }while(flag);
        System.out.println("输入第3个同学的名字:");
        String m = input.next();
        s3.setName(m);
        System.out.println("输入第3个同学的年龄:");
        int q = input.nextInt();
        s3.setAge(q);

        for(int i=0;i<arr.length;i++){
            student student = arr[i];
            System.out.println(student.getNov()+","+student.getName()+","+student.getAge());
        }
        System.out.println("请输入要删除的学生的学号:");
        String p = input.next();
        int count =0;
        for(int j=0;j< arr.length;j++){
            student student = arr[j];
            if(p.equals(student.getNov())) {
                student.setAge(0);
                student.setName(null);
                student.setNov(null);
                System.out.println("删除成功");
                break;
            }else{
                count++;
            }
            if(count==arr.length){
                System.out.println("删除失败");
            }


        }
        for(int i=0;i<arr.length;i++){
            student student = arr[i];
            System.out.println(student.getNov()+","+student.getName()+","+student.getAge());
        }

        for(int i=0;i<arr.length;i++){
            student student = arr[i];
            if(student.getNov()=="heima002"){
               int age =student.getAge()+1;
               student.setAge(age);
                System.out.println(student.getAge());
            }
            //System.out.println(student.getNov()+","+student.getName()+","+student.getAge());
        }


    }
}
public class student {
    private String Nov;
    private String name;
    private int age;

    public student() {
    }

    public student(String nov, String name, int age) {
        Nov = nov;
        this.name = name;
        this.age = age;
    }

    public String getNov() {
        return Nov;
    }

    public void setNov(String nov) {
        Nov = nov;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

缺少如果数组满了要添加对象进去的判断:

1、判断id是否重复:

2、判断数组是否已满:

3、如果数组已经满了,那么创建一个新数组,并且将老数组里的元素复制进去:

4、进行添加和判断操作

5、打印元素的时候,需要分两种情况讨论,一个是添加成功的数组,一个是没有添加成功的数组,可以写一个方法:

6、在上面调用遍历的方法:

若数组不满,删除stu3,那么在数组中事null,但是不能通过null直接使用遍历,相当于用null调用了其他方法,会爆粗,

所以对判断唯一性的方法进行修改:需要判断stu是否为null

补充:拆分题干:

7、对于判断id写一个方法:

8、删除id并遍历:

9、给指定那个学号的学生年龄加一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/343139.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

喷墨打印机市场分析:预计2029年将达到548亿美元

喷墨打印机是将彩色液体油墨经喷嘴变成细小微粒喷到印纸上,有的喷墨打印机有三个或四个打印喷头&#xff0c;以便打印黄、品红青黑四色;有的是共用一个喷头&#xff0c;分四色喷印。 喷墨打印机是在针式打印机之后发展起来的&#xff0c;采用非打击的工作方式。比较突出的优点有…

STM32标准库开发——串口发送/单字节接收

USART基本结构 串口发送信息 启动串口一的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);初始化对应串口一的时钟&#xff0c;引脚&#xff0c;将TX引脚设置为复用推挽输出。 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitTypeDef GPIO_In…

第7章 7.6.5 常量指针 Page406~407

const可以限制指针指向的数据&#xff0c;也可以限制指针的指向 const限制指针指向的数据&#xff0c;不可以修改指向的数据&#xff0c;可以改变指向 推荐写法 常见写法&#xff1a;

discuz论坛附件上传限制大小2MB

我遇到了这个问题&#xff0c;去修改了配置PHP.ini文件没有解决. 我把他变成2000M依旧没有用&#xff0c;然后我选择了用户组&#xff0c;附件部分。如图所示&#xff1a; 然后这个时候我还是没有好&#xff0c;我同事的却不限制大小了&#xff0c;我去清理缓存&#xff…

k8s 容器 java 应用内存限制不生效

一 k8s java 应用内存限制不生效 回顾&#xff1a;Linux杂谈之java命令 namespace负责资源隔离 cgroups负责资源限制 容器JVM最佳实践 Metaspace 是 非 Heap 内存 管理空间,那么 Heap 就是操作空间 JVM内存模型简介 隔离&#xff1a; 两个进程完全隔离感知&#xff1…

进程线程知识

一 初识linux线程 1 线程由来 我们之前说创建一个进程&#xff0c;要创建进程控制块pcb&#xff0c;进程地址空间&#xff0c;页表&#xff0c;而且我之前的博客中都有意无意的说明这个pcb是描述进程的&#xff0c;是os用来管理进程的&#xff0c;而有了线程后&#xff0c;就要…

linux中用户及用户组信息

1&#xff0c;linux通过用户名和口令来验证用户的身份。 2&#xff0c;几个用户可以组成一个用户组。 3&#xff0c;useradd工具添加用户&#xff0c;groupadd命令添加用户组。 4&#xff0c;history 命令查看用户在Shell中执行命令的历史记录。 5&#xff0c;userdel命令删…

机械硬件知识学习

目录 1.电机减速机、扭矩2.伺服电机、步进电机、直线电机3.电机马达的曲线运动是如何转化为轴的直线运动 大佬科普运动控制系统链接&#xff1a;https://www.cnblogs.com/cariohu/p/15508175.html 自己对机械知识的了解是盲区&#xff0c;学习下接触到的一些硬件知识&#xff0…

Ubuntu Desktop Server - xport: command not found

Ubuntu Desktop Server - xport: command not found 1. xport: command not found2. export 错误写成了 xportReferences 1. xport: command not found 2. export 错误写成了 xport strongforeverstrong:~$ gedit ~/.bashrcReferences [1] Yongqiang Cheng, https://yongqian…

部署 Seafile 开源企业云盘

一、Seafile 介绍 Seafile 简介 :::info 官网&#xff1a;https://www.seafile.com/ GitHub&#xff1a;https://github.com/haiwen/seafile ::: Seafile 是一款开源的企业云盘&#xff0c;注重可靠性和性能。 支持 Windows&#xff0c;Mac&#xff0c;Linux&#xff0c;iOS&…

算法复杂度分析看这一篇就够了

2023年也慢慢的步入了年末&#xff0c;光阴易逝&#xff0c;前段时间在学习算法的时候谈到了复杂度&#xff0c;所以今天就来总结一下 算法的复杂度是衡量算法执行效率的度量标准。它描述了随着输入规模的增加&#xff0c;算法所需执行的基本操作的数量或运行时间的增长程度。一…

JSP的学习

1.JSP概念: Java服务端页面;一种动态的网页技术,既可以定义HTML,JS,CSS等静态内容,也可以定义Java代码的动态内容;JSPHTMLJava;JSP的作用:简化开发,避免了在Servlet中直接输出HTML标签; 2.JSP快速入门 3.JSP原理 概念&#xff1a;Java Server Pages&#xff0c;Java服务端页…

C# CefSharp 输入内容,点击按钮,并且滑动。

前言 帮别人敲了个Demo,抱试一试心态&#xff0c;居然成功了&#xff0c;可以用。给小伙伴们看看效果。 遇到问题 1&#xff0c;input输入value失败&#xff0c;里面要套了个事件&#xff0c;再变换输入value。后来用浏览器开发工具&#xff0c;研究js代码&#xff0c;太难了&a…

UG制图-全剖和阶梯剖

当机件的内部形状较复杂时&#xff0c;视图上将出现许多虚线&#xff0c;不便于看图和标注尺寸 解决方法就是使用剖视图 剖视图的形成&#xff1a;假想用一个剖切面将机件剖开&#xff0c;移去剖切面和观察者之间的部分&#xff0c;将其余部分向投影面投射&#xff0c;并在剖切…

【数据结构】 链栈的基本操作 (C语言版)

目录 一、链栈 1、链栈的定义&#xff1a; 2、链栈的优缺点&#xff1a; 二、链栈的基本操作算法&#xff08;C语言&#xff09; 1、宏定义 2、创建结构体 3、链栈的初始化 4、链栈的进栈 5、链栈的出栈 6、获取栈顶元素 7、栈的遍历输出 8、链栈的判空 9、求链…

Windows内网渗透篇-后门持久化姿势总结

简介 拿下服务器之后,应该怎么做到持久化控制呢?下面总结了内网渗透中常见的持久化姿势,如:映像劫持,定时任务,登录脚本等常见持久化操作,希望对大家工作或者学习有一定的帮助. 隐藏文件 创建系统隐藏文件attrib +s +a +r +h filename attrib +s +h filename 利用NTFS ADS…

JeecgBoot集成TiDB,打造高效可靠的数据存储解决方案

TiDB简介 TiDB是PingCAP公司自主设计、研发的开源分布式关系型数据库&#xff0c;同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品&#xff0c;具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生…

Vue3组件库开发 之Button(2) 未完待续

Vue3组件库开发 之Button(1) 中新建项目&#xff0c;但未安装成功ESLINT 安装ESLINT npm install eslint vite-plugin-eslint --save-dev 安装eslint后&#xff0c;组件文件出现错误提示 添加第三方macros &#xff0c;虽然不是官网但很多开发者都是vue3开发人员 安装macros…

用通俗易懂的方式讲解:使用 MongoDB 和 Langchain 构建生成型AI聊天机器人

想象一下&#xff1a;你收到了你梦寐以求的礼物&#xff1a;一台非凡的时光机&#xff0c;可以将你带到任何地方、任何时候。 你只有10分钟让它运行&#xff0c;否则它将消失。你拥有一份2000页的PDF&#xff0c;详细介绍了关于这台时光机的一切&#xff1a;它的历史、创造者、…

Midjourney 提示词入门 | 提示词格式 特点如何写好自己的提示词?进阶技巧

文章目录 1 Prompt格式2 文本提示词的基本要求3 好的文本提示词的特点 上一节我们初步了解了Midjourney的使用 那么在使用过程中最重要的是通过Prompt告知Midjourney怎么画 因而高效写Prompt非常重要~ 先来了解一下Prompt基本格式 1 Prompt格式 /imagine Text_prompt如下图…