首页 > 编程语言 >JAVA(十五)类和对象

JAVA(十五)类和对象

时间:2024-09-08 10:52:59浏览次数:7  
标签:JAVA 对象 car int 实例 十五 public 属性

面相对象编程

为什么会设计类这个东西

程序中要表示一个人的特征如何表示,它具有不同的类型,

第一个

name 姓名

age年龄  19 int

sex性别 男 String

第二个

name1 姓名

age1年龄  19 int

sex1性别 男 String

第n个。

调用第几个怎么调用,我们知道数组放的是数据相同的类型,不能有不同的类型

C语言中有结构体,JAVA中用类来实现不同的数据类型存放在同一个结构中

汽车,计算机并不认识,只认识0101001,需要开发人员告诉计算机什么是汽车

左边一列的属性就告诉计算机要产生一种新的类型,这个类型有属性,有功能

类具有共同属性和行为的事物的抽象,是对象的模板,是具有相同特征的事物的抽象描述,是抽象的、概念上的定义

它包含两种类型,一种属性,一种叫行为也就是方法。比如汽车Car这个类中 有三个属性,三个方法

对象(也称为实例)

实际存在的该类事物的每个个体,是具体的,因而也称为实例(instance),如下图人是一个类,而具体的人就是对象

可以理解为:类 => 抽象概念的人;对象 => 实实在在的某个人。

再比如汽车是一个模版是一个类,具体的一个个汽车就是一个个对象,也就是实例

比如宝马z4就是根据汽车这个类创建的一个实例,它有自己速度、价格、品牌,它也有自己的行为(加速,减速,巡航)就是方法。   右边的这么多汽车也是一个个对象一个个实例,它们也都有自己独特的速度、价格、品牌

所以我们说,类是用来告诉虚拟机如何创建某种对象的蓝图,模版

房子图纸就是一个模版一个类,根据模版造出的房子就是一个个类

古人在这方面的辩论。。。

类的定义

类的定义使用关键字:class。格式如下:

[修饰符] class 类名{
    属性声明;
    方法声明;
}

定义一个汽车类

public class Car {
    private int speed;
    private int price;
    private String brandName;
    /*减速*/
    public void brake(){
        speed-=10;
    }
    /*加速*/
    public void boost(){
        speed+=10;
    }
      public int getSpeed() {
        return speed;
    }
    public void setSpeed(int speed) {
        this.speed = speed;
    }
    public int getPrice() {
        return price;
    }
    public void setPrice(int price) {
        this.price = price;
    }
    public String getBrandName() {
        return brandName;
    }
    public void setBrandName(String brandName) {
        this.brandName = brandName;
    }
}

练习定义一个Person人类 ,Person就是类,一个个人就是一个个对象,Person有name,sex,age属性,有eat,sleep,run行为,也就是方法

练习定义一个Dog类 有breed size color ,age 属性,有eat run sleep name三个方法

练习定义一个房子设计图纸类,类名Room  属性heigt,width,price,area

注意练习使用IDEA中generate get set方法生成他的get set方法

创建对象,实例化,对象化

对象是类的实例。类是创建对象的模板或蓝图。因此,对象是类的实例(结果)

执行Dog myDog= new Dog ();语句后,将在堆内存中给Dog 对象分配空间,并在栈内存中给引用变量myDog分配空间,存放Dog 对象的引用。

使用setName给dog类对象name属性赋值

使用getName给获取dog类对象的name属性

定义了一个类,就相当于在计算机中定义了一种新的类型,用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象

练习

Car  car  = new Car(); 使用new关键字来创建一个car 类的对象 ,

执行Car  car  = new Car();语句后,将在堆内存中给Person对象分配空间,并在栈内存中给引用变量car分配空间,存放Car 对象的引用。

使用setPrice给car类价格属性赋值

使用getPrice调用car类的价格属性

调用

使用car.方法名 或 car.属性名 来调用


对象的引用

对象引用的赋值

此时fido指向的Dog对象 在没有被用到,被当做垃圾,被垃圾回收器回收

练习

建立一个学生类,Student

name 为String 类型,修饰符为private,

sex 为String类型,修饰符为private

age 为int 类型,修饰符为private

方法 声明 say() 输出我是一个好学生

IDEA中右键generate get set方法,为每个属性生成它的get set方法

使用new 创建一个学生对象,使各个属性的set方法为它赋值。学生名为张三,性别为男,年龄为18。

输出张三的名字。

标签:JAVA,对象,car,int,实例,十五,public,属性
From: https://blog.csdn.net/sadfasdfsafadsa/article/details/141999269

相关文章

  • JAVA(十四)类和对象之面向对象编程
    编程的分类按编程风格分类面向过程编程和面向对象编程和面向接口编程1.1面向过程编程过程式编程,也称为命令式编程,是一种编程范式,它依赖于过程调用来实现逻辑。代码按照一定的顺序执行,从而实现功能。在过程式编程中,程序被组织成一系列的过程或函数调用,每个过程都负责执行特......
  • Javaweb-数据库设计案例
    1.createtablemusic( idintPRIMARYkey, titlevarchar(32), aliasvarchar(32), imagevarchar(64), stylevarchar(8), typevarchar(4), mediumvarchar(4), publish_timedate, publishervarchar(16), numbertinyint, barcodebigint, summaryvarcha......
  • Javaweb-数据库设计-多表关系实现
    createtabletb_order( idintPRIMARYkeyauto_increment, paymentdouble(10,2), payment_typetinyint, statusTinyint);createtabletb_goods( idintPRIMARYkeyauto_increment, titlevarchar(100), pricedouble(10,2));createtabletb_order_goods(......
  • java计算机毕业设计门诊电子处方管理系统(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景:随着医疗技术的飞速发展与信息化建设的深入推进,传统的手写门诊处方已难以满足现代医疗服务的高效、准确与安全性需求。门诊电子处方管理系统的研发应......
  • java计算机毕业设计课程教学平台设计与实现(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在信息化时代,教育模式的变革日益显著,传统教学模式逐渐向数字化、网络化转型。随着在线教育的兴起,构建一个高效、便捷的课程教学平台成为提升教学质量......
  • java计算机毕业设计家乡印象网站(开题+程序+论文)
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在快速城市化的今天,人们对家乡的眷恋与记忆愈发珍贵。随着互联网的普及,线上平台成为连接过去与现在、个人与家乡情感的重要桥梁。然而,市场上缺乏一个......
  • javase复习day18API
    游戏打包exeMathabs方法的小bug:以int类型为例,取值范围:-2147483648~2147483647如果没有正数与之对应,那么传递负数结果有误-2147483648没有正数对应则结果还是 -2147483648可以使用JDK15后的新方法absExact如果结果有误则会报错packageMathDemo1;publiccla......
  • 2025年25届最新:如何打造Java SpringBoot个人健康档案管理系统,集成Vue,实现高效信息管理
    ✍✍计算机毕业编程指导师**⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流!⚡⚡Java、Python、微信小程序、大数据实战项目集⚡⚡......
  • Java-数据结构-栈和队列-Stack和Queue (o゚▽゚)o
    文本目录:❄️一、栈(Stack):  ▶1、栈的概念: ▶ 2、栈的使用和自实现:   ☑1)、Stack():   ☑2)、push(Ee):   ☑3)、empty():     ☑4)、peek(Ee):     ☑5)、pop(Ee):    ☑6)、size(Ee): ▶3、栈自实现的总代码:......
  • Java 中的数组是如何声明和初始化的?
    在Java中,数组是一组相同类型的元素的集合,可以通过索引来访问这些元素。数组的长度是固定的,一旦创建就不能改变其大小。下面详细介绍如何在Java中声明和初始化数组,并给出一些实际开发中的使用建议和注意事项。声明数组在Java中,声明数组的基本语法如下:dataType[]arrayN......