类和对象

面向对象和面向过程的思想对比 :

面向过程 :是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的

面向对象 :是一种以对象为中心的编程思想,通过指挥对象实现具体的功能

类和对象的关系#

客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。

    • 类的理解

      • 类是对现实生活中一类具有共同属性和行为的事物的抽象

      • 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合

      • 简单理解:类就是对现实事物的一种描述

    • 类的组成

      • 属性:指事物的特征,例如:手机事物(品牌,价格,尺寸)

      • 行为:指事物能执行的操作,例如:手机事物(打电话,发短信)

  • 类和对象的关系

    • 类:类是对现实生活中一类具有共同属性和行为的事物的抽象

    • 对象:是能够看得到摸的着的真实存在的实体

    • 简单理解:类是对事物的一种描述,对象则为具体存在的事物

类的定义#

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

  • 属性:在类中通过成员变量来体现(类中方法外的变量)

  • 行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)

类的定义步骤:

① 定义类

② 编写类的成员变量

③ 编写类的成员方法

复制代码
public class Student {
    // 属性 : 姓名, 年龄
    // 成员变量: 跟之前定义变量的格式一样, 只不过位置发生了改变, 类中方法外
    String name;
    int age;

    // 行为 : 学习
    // 成员方法: 跟之前定义方法的格式一样, 只不过去掉了static关键字.
    public void study(){
        System.out.println("学习");
    }
}
复制代码

对象的创建和使用#

  • 创建对象的格式:

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

  • 调用成员的格式:

    • 对象名.成员变量

    • 对象名.成员方法();

  • 示例代码 :

复制代码
package com.yyj.object1;

public class TestStudent {
    /*
        创建对象的格式:
                类名 对象名 = new 类名();
        调用成员变量的格式:
                对象名.变量名
        调用成员方法的格式:
                对象名.方法名();
     */
    public static void main(String[] args) {
        // 类名 对象名 = new 类名();
        Student stu = new Student();
        // 对象名.变量名
        // 默认初始化值
        System.out.println(stu.name);  // null
        System.out.println(stu.age);   // 0

        stu.name = "张三";
        stu.age = 23;

        System.out.println(stu.name);  // 张三
        System.out.println(stu.age);   // 23

        // 对象名.方法名();
        stu.study();
        // com.yyj.object1.Student@b4c966a
        // 全类名(包名 + 类名)
        System.out.println(stu);
    }
}
复制代码

案例-手机类的创建和使用#

需求 :首先定义一个手机类,然后定义一个手机测试类,在手机测试类中通过对象完成成员变量和成员方法的使用

分析 :

  • 成员变量:品牌, 价格

  • 成员方法:打电话, 发短信

  • 示例代码:

复制代码
package com.yyj.test1;

public class Phone {
    // 品牌, 价格
    String brand;
    int price;

    // 打电话, 发短信
    public void call(String name){
        System.out.println(""+name+"打电话");
    }

    public void sendMessage(){
        System.out.println("群发短信");
    }
}
复制代码
复制代码
package com.yyj.test1;

public class TestPhone {
    public static void main(String[] args) {
        // 1. 创建对象
        Phone p = new Phone();
        // 2. 给成员变量进行赋值
        p.brand = "大米";
        p.price = 2999;
        // 3. 打印赋值后的成员变量
        System.out.println(p.brand + "..." + p.price);
        // 4. 调用成员方法
        p.call("阿强");
        p.sendMessage();
    }
}
复制代码

 

posted @   1640808365  阅读(326)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2019-10-08 Vue初识 vue导入方式 挂载点 数据 过滤器 文本指令 事件指令 表单指令
点击右上角即可分享
微信分享提示
主题色彩