Java开发从入门到精通(九):Java的面向对象OOP:成员变量,局部变量,实体类的案例

Java大数据开发和安全开发

  • (一)Java的变量
    • 1.1 成员变量和局部变量的区别
    • 1.2 成员变量
    • 1.3 局部变量
    • 1.4 实体类的案例

(一)Java的变量

1.1 成员变量和局部变量的区别

  • 1、类中位置不同:成员变量(类中,方法外)、局部变量(常见于方法中)
  • 2、初始化值不同:成员变量(有默认值,不需要初始化赋值),局部变量(没有默认值,使用之前必须完成赋值)
  • 3、内存位置不同:成员变量(存在于堆内存),局部变量(内存)
  • 4、作用域不同: 成员变量(整个对象),局部变量(在所归属的大括号中)
  • 5、生命周期不同:成员变量(与对象同生共死),局部变量(方法调用而生,方法结束而亡)

在这里插入图片描述

1.2 成员变量

成员变量在类的里面,但是在方法外面

public class Test2 {
    String name; //成员变量
    double score;
    public void svg(){ //方法
        
    }
}

1.3 局部变量

局部变量是在方法内部定义的

public class Test2 {
    String name; //成员变量
    double score;
    public void svg(){ //方法
        int b = 20; //局部变量
    }
}

1.4 实体类的案例

面向对象综合案例-模仿电影信息系统
需求

  • 展示系统中的全部电影(每部电影展示:名称、价格)。
  • 允许用户根据电影编号(id)查询出某个电影的详细信息

设计一个电影类 也是实体类

package com.qianxin.dainying;

public class Movie {
    private int id;
    private String name;
    private double price;
    private double score;
    private String director;
    private String actor;
    private String info;

    public Movie() {
    }

    public Movie(int id, String name, double price, double score, String director, String actor, String info) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.score = score;
        this.director = director;
        this.actor = actor;
        this.info = info;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public double getPrice() {
        return price;
    }

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

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getDirector() {
        return director;
    }

    public void setDirector(String director) {
        this.director = director;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}

设计一个电影操作类

package com.qianxin.dainying;

public class MovieOperator {
    private Movie[] movies;
    public MovieOperator(Movie[] movies){
        this.movies = movies;
    }
    /** 1、展示系统全部电影信息 movies =[m1,m2,m3,...]*/
    public void printAllMovies() {
        System.out.println("-----系统全部电影信息如下:");
        for (int i = 0; i < movies.length; i++) {
            Movie m = movies[i];
            System.out.println("编号:"+ m.getId());
            System.out.println("名称:"+ m.getName());
            System.out.println("价格:"+ m.getPrice());
            System.out.println("----------------");
        }
    }
    public void searchMoiveById(int id) {
        for (int i = 0; i < movies.length; i++) {
            Movie m = movies[i];
            if (m.getId() == id) {
                System.out.println("该电影详情如下:");
                System.out.println("编号:" + m.getId());
                System.out.println("名称:" + m.getName());
                System.out.println("价格::" + m.getPrice());
                System.out.println("得分:" + m.getScore());
                System.out.println("导演:" + m.getDirector());
                System.out.println("主演:" + m.getActor());
                System.out.println("其他信息:" + m.getInfo());
                return;
            }
        }
        System.out.println("没有该电影信息~");
    }
}

设计主程序

package com.qianxin.dainying;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Movie[] movies = new Movie[4];
        movies[0] =new Movie( 1,"水门桥",38.9,9.8,"徐克","吴京","12万人想看");
        movies[1]= new Movie( 2,"出拳吧",39,7.8,"唐晓白","田雨","3.5万人想看");
        movies[2]= new Movie( 3,"月球陨落",42,7.9,"罗兰","贝瑞","17.9万人想看");
        movies[3]= new Movie( 4,"一点就到家",35, 8.7, "许宏字","刘吴然","10.8万人");

        // 4、创建一部电影操作类的对象,接收电影数据,并对其进行业务处理
        MovieOperator operator =new MovieOperator(movies);
        operator.printAllMovies();
        operator.searchMoiveById(3);
                    
        
        System.out.println("==电影信息系统==");
        System.out.println("1、查询全部电影信息");
        System.out.println("2、根据id查询某个电影的详细信息展示");
        System.out.println("请您输入操作命令:");
        Scanner sc=new Scanner(System.in);
        int command =sc.nextInt();
        switch(command) {
            case 1:
                // 展示全部电影信息
                operator.printAllMovies();
                break;
            case 2:
                // 根据id查询某部电影的详细信息展示
                System.out.println("请您输入查询的电影id:");
                int id = sc.nextInt();
                operator.searchMoiveById(id);
                break;
            default:
                System.out.println("您输入的命令有问题~~");
        }
    }
}

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

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

相关文章

多模态AnyGPT——整合图像、语音和文本多模态大规模语言模型算法原理与实践

概述 大规模语言模型在理解和生成人类语言方面具有非凡的能力&#xff0c;但迄今为止&#xff0c;它们的能力主要局限于文本处理。然而&#xff0c;现实世界是一个多模式的环境&#xff0c;信息通过视觉、听觉和触觉等多种感官进行交换。融入这种多样性是开发下一代系统的主要…

高效求解最长回文子序列:动态规划方法与C语言实现

高效求解最长回文子序列&#xff1a;动态规划方法与C语言实现 问题描述解决方案伪代码C代码示例算法分析进一步讨论 在计算机科学中&#xff0c;回文是一种有趣的字符串&#xff0c;它在正序和逆序下是相同的。例如&#xff0c;“civic”、"racecar"和"aibohpho…

解决Qt中文乱码

解决Qt中文乱码 编程环境解决方法设置编辑器的文件编码每个源文件中增加设置增加转码代码有中文的源文件添加UTF-8 BOM 编程环境 WindowsQCreatorQtMSVC 解决方法 设置编辑器的文件编码 项目->Project Settings->编辑器->文件编码&#xff1a; 1.设置默认编码为&a…

吴恩达机器学习:均值聚类法(K-means Clustering)

在本练习中&#xff0c;您将实现K-means算法并将其用于图像压缩。 您将从一个样本数据集开始&#xff0c;该数据集将帮助您直观地了解K-means算法的工作原理。之后&#xff0c;您将使用K-means算法进行图像压缩&#xff0c;将图像中出现的颜色数量减少到该图像中最常见的颜色。…

树--排序二叉树的删除

一、二叉排序树的删除 二叉排序树的删除情况比较复杂&#xff0c;有以下三种情况需要考虑。 删除叶子节点 &#xff08;比如&#xff1a;2,5,9,10&#xff09;删除只有一个子树的节点&#xff08;比如&#xff1a;1&#xff09;删除有两个子树的节点 &#xff08;比如&#x…

【测试思考】当我给互联网姐妹解读电商大促规则

20年初&#xff0c;疫情开始&#xff0c;我和同事好不容易回家过年了&#xff0c;但是无法返沪&#xff0c;只能远程上班。 远程上班的效率比我想象的高很多&#xff0c;上班时间也比我想象的拉长很多&#xff0c;抛开这些扯远了&#xff0c;我们当时在做一个优惠券的项目。 下…

java学习——消息队列MQ

上一篇传送门&#xff1a;点我 目前只学习了RabbitMQ&#xff0c;后续学习了其他MQ后会继续补充。 MQ有了解过吗&#xff1f;说说什么是MQ&#xff1f; MQ是Message Queue的缩写&#xff0c;也就是消息队列的意思。它是一种应用程序对应用程序的通信方法&#xff0c;使得应用…

【解决】Spring Boot创建项目常见问题

&#x1f3a5; 个人主页&#xff1a;Dikz12&#x1f525;个人专栏&#xff1a;Spring学习之路&#x1f4d5;格言&#xff1a;吾愚多不敏&#xff0c;而愿加学欢迎大家&#x1f44d;点赞✍评论⭐收藏 目录 idea无maven选项 无效发行版17 类⽂件具有错误的版本 61.0, 应为 …

基于PyAutoGUI图片定位的自动化截图工具--完成了

1、计划 压测完成后需要编写性能测试报告&#xff0c;报告中所需数据截图较多&#xff0c;使用自动化操作方便快捷&#xff0c;就编写一个界面工具以便后续复用。 基于PyAutoGUI图片定位的自动化截图工具–jmeter部分 基于PyAutoGUI图片定位的自动化截图工具–jmeter部分&#…

js纯前端实现语音播报,朗读功能(2024-04-15)

实现语音播报要有两个原生API 分别是【window.speechSynthesis】【SpeechSynthesisUtterance】 项目代码 // 执行函数 initVoice({text: 项目介绍,vol: 1,rate: 1 })// 函数 export function initVoice(config) {window.speechSynthesis.cancel();//播报前建议调用取消的函数…

HCIP【ospf综合实验】

目录 实验要求&#xff1a; 实验拓扑图&#xff1a; 实验思路&#xff1a; 实验步骤&#xff1a; 一、划分网段 二、配置IP地址 三、搞通私网和公网 &#xff08;1&#xff09;先搞通私网&#xff08;基于OSPF协议&#xff0c;在各个路由器上进行网段的宣告&#xff0c…

使用icpc tool进行滚榜操作

前言 参加ACM的同学都知道&#xff0c;比赛非常有趣的环节就是赛后的滚榜环节&#xff0c;所以为了一个比赛的完整性&#xff0c;自己办比赛时也想要加入滚榜的操作&#xff0c;经过一段时间的研究学习&#xff0c;已经可以将滚榜程序与domjudege程序成功完成融合&#xff0c;…

BypassUAC漏洞挖掘和代码集成

什么是UAC UAC是UserAccountControl的缩写&#xff0c;即用户帐户控制。是Windows操作系统中的一种安全特性&#xff0c;旨在保护计算机不被未经授权的应用程序和操作所破坏。UAC通过提示用户是否允许某个应用程序或操作修改计算机的设置或访问敏感数据&#xff0c;来帮助用户…

AntDesign震撼发布!阿里企业级设计体系引领行业风向!

企业级产品设计系统Antdesign是蚂蚁集团经过大量项目实践和总结&#xff0c;逐步打磨出来的产品。随着近两年b端产品的逐渐白热化&#xff0c;越来越多的用户对更好的用户体验有了进一步的要求。 作为国内研发团队量身定制的在线协作工具&#xff0c;设计师可以直接预览并在即…

C语言 | Leetcode C语言题解之第25题K个一组翻转链表

题目&#xff1a; 题解&#xff1a; /* 定义保存两个地址的结构体* 用来保存反转后结果的头节点和尾节点*/ typedef struct {struct ListNode* head; struct ListNode* tail; } TwoAddress; // 反转中间链表 TwoAddress* reverse(struct ListNode* head){struct ListNode* pr…

Java IO流-字节流

简介 IO流的输入与输出&#xff0c;都在站在内存的角度来看的&#xff0c;因为毕竟是和内促你打交道的嘛&#xff01; 分类 IO流是可以根据方向&#xff0c;或者最小单位进行划分的 上述两两结合一下&#xff0c;就得到四种大的分类 IO流的继承体系 字节输入流InputStream 创建…

邮件群发系统如何确保效率?怎么评估性能?

邮件群发系统构建方法&#xff1f;邮件群发系统有哪些关键功能&#xff1f; 如何确保邮件群发系统的效率&#xff0c;以及如何评估其性能&#xff0c;却成为摆在众多使用者面前的一大问题。AokSend将围绕这两个方面展开讨论&#xff0c;帮助读者更好地理解和应用邮件群发系统。…

链表OJ1——删除链表中等于给定值 val 的所有节点

题目 力扣OJ链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 解法 我们来看看这个题目啊&#xff0c;怎么做呢&#xff1f; 有两种解法 三指针法 我们完全可以定义三个指针来进行这个删除操作 假设我们要移除的是2 这样子就完成了 特殊情况 开头——假设我们…

【学习】黑盒测试用例设计方法都有哪些

在软件测试中&#xff0c;黑盒测试是一种重要的测试方法&#xff0c;它专注于软件的外部行为&#xff0c;而不关心其内部结构和实现。黑盒测试的目标是确保软件的功能符合需求规格说明书中的要求。为了有效地进行黑盒测试&#xff0c;需要设计合理的测试用例。本文将详细介绍黑…

java:多线程中的死锁

多线程:死锁 当多个线程互相争抢资源导致都在互相等待资源的僵局时,如果没有外力,将会一直僵持下去,这就是死锁. 就像两个人分一双筷子,如果一人拿到一根筷子,都在等待对方手里的那根,将没有人能完成吃饭的任务. 死锁的必要条件 1,互斥 即资源只能被一个线程调用 2,不可剥…