当前位置: 首页 > news >正文

【JavaSE-8】面向对象

1、面向对象的初步认识

1.1、什么是面向对象

面向:就是拿,找

对象:能干活的东西

面向对象编程:拿东西过来做对应的事情

java 、c++等是面向对象的语言(OOP),而 C语言则是面向过程的语言

1.2、面向对象与面向过程

面向过程:
传统洗衣服,没有洗衣机的时候,我们需要自己用手洗,这个时候整个洗衣服大致过程是:拿盆-放水-放衣服-放洗衣粉-开始洗-换水-放洗衣粉-开始洗-拧干-晾衣服。整个洗衣服流程里,我们都要关注每一步做了什么事情。
面向对象:
现代洗衣服,有洗衣机的时候,人将衣服放到洗衣机,然后倒入洗衣粉,洗衣机开始洗衣,然后甩干。这个过程我们不关注洗衣服的具体过程,我们只需将人,衣服,洗衣粉,洗衣机这四个对象之间交互,就能完成洗衣服的任务。

【注意】

面向过程与面向对象不是一门语言,而是解决一个问题的方法,没有好坏之分,都有其专门的应用场景。

2、类定义和使用

面向对象程序设计关注的是对象,而对象是现实生活中的实体

2.1、简单认识类

类是用来对一个实体(对象)来进行抽象描述的,是一组相关属性和行为的集合

类的组成

  • 属性:指事物的特征,例如:手机事物(品牌,价格,尺寸)
  • 行为:指事物能执行的操作,例如:手机事物(打电话,发短信)

可以理解为对象的设计图,如下图所示:

类和对象的关系: 类是对事物的一种描述,对象则是具体存在的事物。

在java 中需要根据类,创建对象(java 中要想创建对象,必须有类的存在);一个类,可以创建出多个对象。

2.2、类的定义格式

在 java 中定义类时需要用到class关键字,具体语法:

//创建类
public class 类名{
   
    field;	//属性或者成员变量
    method;	//行为或者成员方法
}

类名使用大驼峰,类中包含的内容称为类的成员。

类的组成是由属性和行为两部分组成

  • 属性:在类中通过成员变量来体现(类中方法外的变量),主要用来描述类的。
  • 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可),主要说明类有哪些功能。

类的本质分析:对事物进行的描述

举例 1:

我之前有一个朋友,叫张三,今年 23 岁180 的身高,平时喜欢吃饭学习

即:属性有姓名,年龄,身高;方法有吃饭,学习

举例 2:

我买了一台白色海尔洗衣机,花了1999 块钱,并且洗衣服甩干很方便

即:属性有颜色,洗衣机类型,价钱;方法有洗衣服,甩干

所以说类中的属性其实描述的就是名词,而行为就是动词或者理解为动作和行为


【举例】

定义一个学生类

属性:姓名 年龄

行为:学习 吃饭

public class Student {
   
    //属性:姓名 年龄
    //String name = "小明"; //成员变量是只定义,不赋值
    String name;
    int age;

    //行为:学习 吃饭
    public void study(){
   
        System.out.println("学生学习...");
    }
    public void eat(){
   
        System.out.println("学生吃饭...");
    }
}

【注意事项】

  • 类名要采用大驼峰定义

  • 成员变量是只定义,不给值(在创建完具体对象后才进行赋值)

    • 因为如果在定义成员属性的时候赋值,那之后的调用成员对象然后输出时会一直输出的都是具体的同一个属性,而作为设计图性质的类,作用应该是可以创建多个不同的对象,所以不能赋值。
  • 成员方法前统一为public此处写的方法不带static关键字


2.3、对象的使用

定义了一个类,就相当于在计算机中定义了一种新的数据类型,与intdouble类似,只不过intdoublejava语言自带的内置类型,而类是用户自定义了一个新的类型,比如上述的:Student类。它们都是类(一种新定义的数据类型)有了这些自定义的类型之后,就可以使用这些类来定义实例(或者称为对象)。
用类这个数据类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。


创建了一个 student 类的对象后鼠标右键发现不能运行,原因之一是没有写main方法,另外可以想一下生活例子,有了一个手机设计图(即创建好了一个类),就可以使用手机了吗??

显然不能,需要通过手机设计图去创建一个手机才能使用,即用类创建一个具体对象。所以在代码中实现就需要借助new这个关键字来创建一个对象。


创建对象的格式

类名 对象名 = new 类名();

使用对象成员变量的格式

对象名.成员变量

使用对象成员方法的格式

对象名.成员方法();

例子1:

public class Student {
   
    //成员变量
    String name;
    int age;
    //成员方法
    public void study(){
   
        System.out.println("学生学习...");
    }
    public void eat(){
   
        System.out.println("学生吃饭...");
    }
}
public class StudentDemo {
   
  public static void main(String[] args) {
   
    //创建对象 类名 对象名 = new 类名();
    Student student = new Student();

    //使用对象成员变量  对象名.成员变量
    System.out.println(student.age);
    System.out.println(student.name);

    student.age = 20;
    student.name = "小明";

    System.out.println(student.age);
    System

相关文章:

  • 运动控制卡--固高实用
  • 软件信息安全性测试流程有哪些?专业软件测评服务机构分享
  • MySQL自定义序列数的实现
  • 【AIGC系列】6:HunyuanVideo视频生成模型部署和代码分析
  • 【Framework系列之Client】UIManager和UIPanel模块介绍
  • Go加spy++隐藏窗口
  • 梦三国2游戏下载
  • io学习------>进程
  • LeetCode 解题思路 11(Hot 100)
  • windows部署spleeter 版本2.4.0:分离音频的人声和背景音乐
  • Reverse DevTools | 逆向调试工具 使用手册
  • 机器学习深度学习基本概念:logistic regression和softmax
  • VScode 中文符号出现黄色方框的解决方法
  • 通用外设驱动模型(四步法)及配置GPIO步骤
  • 云原生系列之本地k8s环境搭建
  • 【pyqt】(十二)文本框
  • 神经网络中梯度计算求和公式求导问题
  • 2025年渗透测试面试题总结-字某某动-安全研究实习生(一面)(题目+回答)
  • BFS(七)662. 二叉树最大宽度 数组下标模拟存储二叉树
  • “深入浅出”系列之杂谈篇:(8)SQL Server 真的比不上 MySQL 吗?
  • 单方面免签11个常见问题,外交部权威解答
  • 中外科研人员合作揭开固态电池短路成因
  • 马上评|当众猥亵女演员,没有任何开脱理由
  • 1309家县医院已达到三级医院能力,还有哪些短板要补?
  • 管教打骂9岁儿子致其死亡,青岛一男子被刑拘
  • 欧洲观察室|“美国优先”使欧盟对华政策面临地缘经济困境