Java---面向对象

一.面向对象

1.概念

1.1面向过程 C

吃饭:动作为核心

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

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

目标:吃饭

人(忽略)吃饭

站在人类的角度思考问题

2.什么是对象?

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

2.1类

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

对象:具体,类的具体

类 -----> 对象

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

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

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

Class ---> Type

java 复制代码
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的注释

*类、方法

java 复制代码
/**
 *
 *
 /

*行注释

java 复制代码
//

*块注释

java 复制代码
/*
 *
 */
3.2冰箱的类

属性、方法

3.3执行冰箱操作

升高温度、降低温度工作

3.4异常情况

限制温度

java 复制代码
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---私有的

java 复制代码
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.属性操作

java 复制代码
    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关键字

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

this ----- 当前对象

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

相关推荐
小团团04 分钟前
Python编程中的两种主要的编程模式
开发语言·python
蹦蹦跳跳真可爱58914 分钟前
Python----Python高级(函数基础,形参和实参,参数传递,全局变量和局部变量,匿名函数,递归函数,eval()函数,LEGB规则)
开发语言·python
码农土豆23 分钟前
解决问题 PHP $_SERVER[‘HTTPS‘] 没有值
开发语言·https·php
ByteBlossom66627 分钟前
SQL语言的面向对象编程
开发语言·后端·golang
程序员沉梦听雨27 分钟前
【IDEA】debug篇
java·ide·intellij-idea
earthzhang202128 分钟前
《深入浅出HTTPS》读书笔记(28):DSA数字签名
开发语言·网络协议·算法·https·1024程序员节
小爬虫程序猿33 分钟前
利用Python爬虫获取义乌购店铺所有商品列表:技术探索与实践
开发语言·爬虫·python
书生-w33 分钟前
局域网共享文件夹实现两台Windows电脑之间传输文件
开发语言·windows·php
一颗知足的心36 分钟前
Go语言之路————func
开发语言·后端·golang
学习中的程序媛~1 小时前
POI在word中插入图片
java·word