Java---面向对象

news2024/9/20 20:47:11

一.面向对象

1.概念

1.1面向过程 C

 吃饭:动作为核心

 起身--》开门--》大量的逻辑判断

1.2面向对象 C++/Java/Python/Go

 目标:吃饭

 人(忽略)吃饭

站在人类的角度思考问题

2.什么是对象?

Object-->东西(万事万物皆是对象。)

2.1类

类:抽象,一个设计,对象的抽象

对象:具体,类的具体

类 -----> 对象

狗 ---> Dog ---> 抽象的

(两只耳朵,一只尾巴,四条腿,一张嘴,毛发)----特征

(陪伴(动作,行为))----职责 

Class ---> Type

public class Dog {

    //狗的信息
    int leg = 4;
    String hair = "金黄色";
    double price = 666.66;

    public void run(){
        System.out.println("我的狗跑的飞快!");
    }

    public void accompany(){
        System.out.println("带来快乐...");
    }

    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.run();
        myDog.accompany();
    }
}

3.以冰箱(Fridge)为例

1.名字(Fridge)

2.属性、特征、域(field)、xxx变量

3.方法、函数、动作

3.1Java的注释

*类、方法

/**
 *
 *
 /

*行注释

//

*块注释

/*
 *
 */
3.2冰箱的类

属性、方法

3.3执行冰箱操作

升高温度、降低温度工作

3.4异常情况

限制温度

import javax.swing.*;

//冰箱类
public class Fridge {

    private String brand;
    private String color;
    private double size;
    private double weight;
    private double price;
    private int year;//保修年限
    private int temperature = 5;//温度
    private String company;//公司

    public String getBrand() {
        return brand;
    }

    //给汽车的brand设置品牌
    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getColor() {
        return color;
    }

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

    public double getSize() {
        return size;
    }

    public void setSize(double size) {
        this.size = size;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }

    public double getPrice() {
        return price;
    }

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

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getTemperature() {
        return temperature;
    }

    public void setTemperature(int temperature) {
        this.temperature = temperature;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    //冰箱升高的温度方法
    // n 要升高的温度
    public void tempUp(int n){
        if (temperature+n > 20){
            JOptionPane.showMessageDialog(null,"温度超出冰箱范围,升温失败");
        }else {
            temperature += n;
        }
    }

    //冰箱降低的温度方法
    // n 要降低的温度
    public void tempDown(int n){
        if (temperature-n < -20){
            JOptionPane.showMessageDialog(null,"温度超出冰箱范围,降温失败");
        }else {
            temperature -= n;
        }
    }

    //显示当前冰箱的温度
    public void print(){
        System.out.println("当前温度:" + temperature);
    }

    public static void main(String[] args) {
        Fridge myFridge = new Fridge();
        myFridge.setBrand("无敌");
        System.out.println(myFridge.getBrand());


        System.out.println("冰箱启动");
        myFridge.print();
        while (true){

            String opt = JOptionPane.showInputDialog("请选择操作(1-升温,2-降温)");

            //String s = null;
            int n = 0;
            if ("1".equals(opt)) {
                //升温操作
                //String s = JOptionPane.showInputDialog("请输入要升高的度数");
                n = Integer.parseInt(JOptionPane.showInputDialog("请输入要升高的度数"));
                myFridge.tempUp(n);
            }else if ("2".equals(opt)){
                //降温操作
                //s = JOptionPane.showInputDialog("请输入要降低的度数");
                n = Integer.parseInt(JOptionPane.showInputDialog("请输入要降低的度数"));
                myFridge.tempDown(n);
            }
            myFridge.print();

            //判断是否退出操作
            int c = JOptionPane.showConfirmDialog(null,"是否继续进行");
            if (0 != c){
                JOptionPane.showMessageDialog(null,"操作完成,谢谢使用");
                break;
            }
        }
    }
}

4.面向对象描述类

4.1文字描述

4.2代码描述

4.3类图描述

5.访问控制符

5.1 public---公开类型

任何代码都能访问

5.2 private---私有的

private String brand;
 
private String color;

private double size;
 
private double weight;
    
private double price;
    
private int year;//保修年限
    
private int temperature = 5;//温度
    
private String company;//公司

只有在本class内可以访问

6.属性操作

    public String getBrand() {
        return brand;
    }

    //给汽车的brand设置品牌
    public void setBrand(String brand) {
        this.brand = brand;
    }

    public String getColor() {
        return color;
    }

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

    public double getSize() {
        return size;
    }

    public void setSize(double size) {
        this.size = size;
    }

    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }

    public double getPrice() {
        return price;
    }

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

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getTemperature() {
        return temperature;
    }

    public void setTemperature(int temperature) {
        this.temperature = temperature;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

setter / getter方式

通过setXXX(参数)存储

通过getXXX()取出数据

7.this关键字

 //给汽车的brand设置品牌
    public void setBrand(String brand) {
        this.brand = brand;
    }

this ----- 当前对象

this.brand = brand; //当前对象的属性brand,值为传入的变量brand的值

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构2】哈希表、哈希表的应用(集合与字典、md5算法和文件的哈希值)

1 哈希表 哈希表一个通过哈希函数来计算数据存 储位置的数据结构&#xff0c;通常支持如下操作: 插入(键&#xff0c;值):插入键值对(键&#xff0c;值) Get(key):如果存在键为键的键值对则返回其值&#xff0c;否则返回空值 删除(键):删除键为键的键值对哈希表(Hash Table&am…

开发者学习类网站

目录 **1、CodeProject****2、simplilearn****3、VisuAlgo****4、Google AI****5、CodeWars****6、SourceForge****7、GeeksforGeeks****8、StackOverflow** 1、CodeProject 网址&#xff1a;https://www.codeproject.com/ CodeProject是一个免费公开自己写的代码与程序的优秀…

稀土阻燃协效剂在木质地板中的应用

木质地板作为一种天然材料&#xff0c;非常容易燃烧&#xff0c;因此需要采取措施来增强其阻燃性能。稀土阻燃协效剂基于稀土4f电子层结构带来的特有属性&#xff0c;在聚合物材料燃烧时可催化酯化成炭,迅速在高分子表面形成致密连续的碳层,隔绝聚合物材料内部的可燃性气体与氧…

vue项目png图片加载不出来的问题

前提&#xff1a;因为命名的时候 配合后端&#xff0c;所以把图片的名称设置成中文的例如&#xff1a;新增圆、新增方块等命名&#xff1b;提交到线上环境后&#xff0c;发现有些图片不能完全显示&#xff1b;鼠标移入查看地址&#xff0c;发现其他展示的图片已经转为base64的形…

SALib | 灵敏度分析Python工具箱

灵敏度分析Python工具箱 Sensitivity Analysis LibrarySupported MethodsInstallationRequirementsHow to cite SALibReference Sensitivity Analysis Library SALib是常用灵敏度分析方法的Python实现&#xff0c;包括 Sobol、Morris 和 FAST 方法。在系统建模中很有用&#x…

解决Element-plus中Carousel(走马灯)图片无法正常加载的bug

前言&#xff1a; 最近帮助朋友解决了一个使用Element-plus中Carousel&#xff08;走马灯&#xff09;图片无法正常加载的bug&#xff0c;经过笔者的不断努力终于实现了&#xff0c;现在跟大家分享一下&#xff1a; 朋友原来的代码是这样的&#xff1a; <template><…

代码随想录Day 23|回溯Part02,39.组合总和、40.组合总和Ⅱ、131.分割回文串

提示&#xff1a;DDU&#xff0c;供自己复习使用。欢迎大家前来讨论~ 文章目录 第七章 回溯算法part03一、题目题目一&#xff1a; 39. 组合总和解题思路&#xff1a;回溯三部曲剪枝优化小结&#xff1a; 题目二&#xff1a;40.组合总和Ⅱ解题思路&#xff1a;回溯三部曲 题目…

LabVIEW中CANopen Read SDO.vi 和 CANopen Read Write CAN Frame.vi区别

CANopen Read SDO.vi 和 CANopen Read Write CAN Frame.vi 都是 NI-Industrial Communications for CANopen 库中的示例 VI&#xff0c;用于与 CANopen 网络进行通信&#xff0c;但它们的功能和使用场景有所不同。以下是它们的主要区别&#xff1a; 1. 功能层次 CANopen Read W…

图像分割论文阅读:BCU-Net: Bridging ConvNeXt and U-Net for medical image segmentation

本文提出了一种集合ConvNeXt和U-Net优势的网络模型来分割医学图像。 当然&#xff0c;模型整体结构就是并列双分支&#xff0c;如果只是这些内容&#xff0c;不值得拿出来讲。 主要有意思的部分是其融合两分支的多标签召回模块&#xff08;multilabel recall loss module&…

Tutorial:Deep Learning for Remote Sensing Data

文章目录 0. Intro1. ADVANTAGES OF REMOTE SENSING METHODS2. THE GENERAL FRAMEWORK3. BASIC ALGORITHMS IN DEEP LEARNING3.1 CONVOLUTIONAL NEURAL NETWORKS3.1.1 CONVOLUTIONAL LAYER3.1.2 NONLINEARITY LAYER3.1.3 POOLING LAYER 3.2 AUTOENCODERS3.3 RESTRICTED BOLTZMA…

SEO古诗网,可做站群,可二开成泛——码山侠

数据量大&#xff0c;古诗&#xff0c;名句等一共有数十万数据&#xff0c;基本上所有的古诗词已经入库完。 模板SEO强大&#xff0c;做好了基本的优化配置&#xff0c;结合帝国强大的sinfo插件&#xff0c;百度推送插件&#xff0c;以及itag管理插件很容易形成词库。 帝国CM…

数据结构(邓俊辉)学习笔记】串 01——ADT

1. 定义 特点 我们讨论的主题是串&#xff0c;无论从抽象数据类型&#xff0c;还是从具体实现的角度来看&#xff0c;串&#xff0c;相当于此前所介绍的数据结构来说都更为简单。因此&#xff0c;会将更多的时间用于讨论串的相关算法&#xff0c;尤其是串匹配的算法。 在接下…

探寻孩子不会说话与自闭症的关联及成因

在孩子的成长过程中&#xff0c;语言的发展是一个至关重要的阶段。然而&#xff0c;有些孩子却迟迟不会说话&#xff0c;这让家长们忧心忡忡。而当孩子不会说话的同时还伴有一些异常行为时&#xff0c;自闭症的担忧便会涌上心头。那么&#xff0c;孩子不会说话且患有自闭症究竟…

最近再写一个仿微信的项目遇到的一些bug(一)

目录&#xff1a; bug &#xff08;一&#xff09;Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are requiredProperty报错解决方法 bug &#xff08;二&#xff09;Cannot invoke “javax.script.ScriptEngine.eval(String)“ because “engine“ is null报错原…

likeshop采集商品图片无法保存解决方案

封面图 一个修复单&#xff0c;客户的likeshop采集tb商品后&#xff0c;保存到商品库的时候 主图无法显示 报错&#xff1a; "/www/wwwroot/test.0ev.cn/server/public/uploads/l7pu2aqt/admin/images/d61d40dab9e6245f90b62ede72b51639.jpg" string(6226) "…

除毛大作战,选择你的清理工具——希喂、美的宠物空气净化器PK

随着气温的升高&#xff0c;又到了宠物的换毛季。猫咪在家里疯狂掉毛&#xff0c;而铲屎官也陷入清理难题。幸好&#xff0c;有宠物空气净化器可以帮助铲屎官减轻打扫负担。那么宠物空气净化器又该如何挑选呢&#xff1f;哪款宠物空气净化器效果更佳&#xff1f;我也很想知道答…

【JVM】剖析字符串与数组的底层实现(一)

剖析字符串与数组的底层实现 字符数组的存储方式 JVM有三种模型: 1.Oop模型:Java对象对应的C对象2.Klass模型:Java类在JVM对应的C对象3.handle模型 字符串常量池 即String Pool&#xff0c;但是JVM中对应的类是StringTable&#xff0c;底层实现是一个hashtable,如代码所示 …

老师怎样分班更便捷?

随着新学期的钟声敲响&#xff0c;老师们又迎来了一年中最繁忙的时刻。开学之初&#xff0c;除了要处理日常的教学事务&#xff0c;老师们还肩负着一项重要任务——给新生进行分班。 其实老师们完全可以不必那么劳累。在这个科技日新月异的时代&#xff0c;有许多工具可以帮助老…

计算机毕业设计选题推荐-高中素质评价档案系统-Java/Python项目实战

✨作者主页&#xff1a;IT毕设梦工厂✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

SOMEIP_ETS_061: Sending_two_SOMEIP_Messages_in_a_row

测试目的&#xff1a; 验证设备&#xff08;DUT&#xff09;能够处理在单个UDP数据包中发送的多个SOME/IP消息&#xff0c;并对所有这些SOME/IP消息给出正确的响应。 描述 本测试用例旨在检查DUT在接收到一个包含多个SOME/IP消息的UDP数据包时&#xff0c;是否能够对所有包含…