• Java中该如何面向对象以及类的定义、使用和实例化


    1.面向对象的初步认识

    1.1 什么是面向对象

    Java是一门纯面向对象的语言(Object Oriented Program,继承OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交互完成一件事情。

    面向对象的优点
    用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计、扩展以及维护都非常友好

    1.2 面向对象与面向过程

    举一个洗衣服的例子:
    在这里插入图片描述

    这是传统洗衣服的步骤

    传统洗衣服的方式:注重的是洗衣服的过程,少了一个环节可能都不行

    • 不同衣服洗的方式,时间长度,拧干方式都不同,处理起来就比较麻烦。
    • 如果将来要洗鞋子,那就是另一种放方式
    • 如果按照该种方式来写代码,将来扩展或者维护起来会比较麻烦。

    现代洗衣服的方式:

    总共有4个对象:人、衣服、洗衣机、洗衣粉

    • 面向对象方式来进行处理,就不关注洗衣服的过程,具体洗衣机是怎么来洗衣服,如何来甩干的,用户不用去关心。
    • 只需要将衣服放进洗衣机,导入洗衣粉,启动开关即可,通过对象之间的交互来完成的

    【注意事项】
    面向过程和面相对象并不是一门语言,而是解决问题的方法,没有那个好坏之分,都有其专门的应用场景

    下面再来举一个例子来具体描述什么是面向对象什么是面向过程

    买手机的例子:

    【面向过程】

    • 比如我要一个买手机。
    • 首先我在网上查看要买哪个型号的手机。
    • 选择手机的参数。
    • 选好心仪的手机,然后下单。
    • 手机到了,取快递。
    • 激活,使用。

    强调的是买手机的过程,买手机用了几步,并且任何一个步骤出了问题都会影响到使用使用手机。

    【面向对象】

    • 我要买手机
    • 让朋友帮我买手机,他来完成(上网查看、选参数、下单、取快递、激活使用)
    • 最后拿给我使用。

    我是要使用手机,根本不需要关心买手机的步骤,手机拿回来后,我来使用就好了。

    2.类的定义和使用

    2.1 简单认识类

    类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来干啥),描述完成后计算机就可以识别了。

    //student是要描述的对象
    class student {
        //对象的属性
        public int age;//年龄
        public String name;//姓名
        public String telephone;//电话
    
        //对象的行为
        public void eat(){
            System.out.println("吃饭");
        }
        public void sleep() {
            System.out.println("睡觉");
        }
        public void beatPeas() {
            System.out.println("打豆豆");
        }
    
    }
    public class ClassUse {
        public static void main(String[] args) {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    2.2 类的定义格式

    先来定义一个洗衣机类:

    类至少有两部分组成:一个是属性、一个是行为

    • 属性叫做成员属性(有的书籍叫字段)。
    • 方法叫做成员方法(有的书籍叫方法)。
    //class - 类名 -> 大驼峰
    class WashMachine{
        //属性【字段】 -> 成员属性
        public String brand; // 品牌
        public String type; // 型号
        public double weight; // 重量
        public double lenght; // 长
        public double width; // 宽
        public double height; // 高
        public String color; // 颜色
        public int price;//价格
    
        //行为【方法】 -> 成员方法
        public void washClothes(){ // 洗衣服
            System.out.println("洗衣功能");
        }
        public void dryClothes(){ // 脱水
            System.out.println("脱水功能");
        }
        public void setTime(){ // 定时
            System.out.println("定时功能");
        }
    }
    public class ClassUse {
        public static void main(String[] args) {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    【注意事项】

    • class 后面书写的是类名,类名要采取大驼峰定义(即单词首字母大写)。
    • 方法名要使用小驼峰(即方法名单词首字母小写,其余单词首字母大写)。
    • 成员前写法统一为public,后面会详细解释。
    • 此处写的方法不带 static 关键字,后面会详细解释。

    3.课堂练习

    3.1 定义一个猫类

    //定义一个猫类
    class Cat{
        public String name;//名字
        public String color;//颜色
        public int age;//年龄
    
        public void Purrpurr() {//咕噜噜噜
            System.out.println("咕噜咕噜");
        }
        public void Meow() { //喵喵叫
            System.out.println("喵喵");
        }
        public void Wagtail() { //摇尾巴
            System.out.println("摇尾巴");
        }
    }
    public class ClassUse {
        public static void main(String[] args) {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    3.2 定义一个女朋友类

    //定义一个女朋友类
    class Grilfriend{
        public String name;//名字
        public int weight ;//体重
        public int age;//年龄
        public String telephone;//电话
        public int height;//身高
    
        public void Kiss() {//亲亲
            System.out.println("亲一个");
        }
        public void Hug() { //抱抱
            System.out.println("抱一个");
        }
        public void Coquetry() { //撒娇
            System.out.println("撒娇");
        }
    }
    public class ClassUse {
        public static void main(String[] args) {
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    【注意事项】

    • 一般一个文件当中只定义一个类
    • main方法所在的类一般要使用public修饰(注意:Eclipse默认会在public修饰的类中找main方法)
    • public修饰的必须要和文件名相同
    • 不要轻易去修改public修饰的类的名称,如果要修改,**通过开发工具修改。1

    3.类的实例化

    3.1 什么是实例化

    • 定义了一个类,就相当于在计算机中定义了一种新的类型。
    • 用类类型创建对象的过程,称为类的实例化
    //定义一个女朋友类
    class Grilfriend{
        public String name;//名字
        public int weight ;//体重
        public int age;//年龄
        public String telephone;//电话
        public int height;//身高
    
        public void Kiss() {//亲亲
            System.out.println("亲一个");
        }
        public void Hug() { //抱抱
            System.out.println("抱一个");
        }
        public void Coquetry() { //撒娇
            System.out.println("撒娇");
        }
    }
    public class ClassUse {
        public static void main(String[] args) {
            //实例化一个女朋友对象
            Grilfriend grilfriend = new Grilfriend();//这个时候有了一个真正的grilfriend
            grilfriend.name = "小美";
            grilfriend.age = 19;
            grilfriend.telephone = "123456789";
            grilfriend.weight = 56;
            grilfriend.height = 170;
            System.out.println(grilfriend.name);
            System.out.println(grilfriend.age);
            System.out.println(grilfriend.telephone);
            System.out.println(grilfriend.weight);
            System.out.println(grilfriend.height);
    
            //通过.来访问方法
            grilfriend.Kiss();
            grilfriend.Hug();
            grilfriend.Coquetry();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    class Cat{
        public String name;//名字
        public String color;//颜色
        public int age;//年龄
    
        public void Purrpurr() {//咕噜噜噜
            System.out.println("咕噜咕噜");
        }
        public void Meow() { //喵喵叫
            System.out.println("喵喵");
        }
        public void Wagtail() { //摇尾巴
            System.out.println("摇尾巴");
        }
    }
    public class ClassUse {
        public static void main(String[] args) {
            //实例化一个Cat对象
            Cat cat = new Cat();//这个时候有了一个真正的Cat
            Cat cat1 = new Cat();//小猫1号
            Cat cat2 = new Cat();//小猫2号
            Cat cat3 = new Cat();//小猫3号
            cat.name = "小栗";
            cat.age = 3;
            cat.color = "黑色";
            System.out.println(cat.name);
            System.out.println(cat.age);
            System.out.println(cat.color);
            //通过.来访问方法
            cat.Purrpurr();
            cat.Meow();
            cat.Wagtail();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    每一只小猫都可以有它自己的名字和颜色。

    【注意事项】

    • new 关键字用于创建一个对象的实例。
    • 使用 . 来访问对象中的属性和方法。
    • 同一个类可以创建多个实例

    3.2 类和对象的说明

    • 只是一个模型一样的东西,用来对一个实体进行描述,限定了类有哪些成员。
    • 类是一种自定义的类型,可以用来定义变量。
    • 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量。

    做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图
    只设计出需要什么东西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空


    1. 注脚的解释 :
      如果要修改类的名称,要使用idea来更改。
      右击要更改的文件,选中Refactor,再选中Rename File…


      修改完后,点击Refactor确认修改。 ↩︎

  • 相关阅读:
    Vue-条件渲染和循环渲染
    LINUX中的chmod修改文件权限命令
    vue路由与nodeJS环境搭建
    Idea完全卸载步骤
    巧用Stream流解决Page分页连表查询一对多展示错误的问题
    文心一言,关于修真
    linux redis string 乱序版
    Flask--路由配置
    apache poi 插入“下一页分节符”并设置下一节纸张横向的一种方法
    c语言提高学习笔记——02-c提高03day
  • 原文地址:https://blog.csdn.net/m0_63033419/article/details/126220502