面向对象基本概念——类与对象

在学习面向对象编程时,我们始终离不开类和对象两个基本概念,

什么是类和对象?如何使用?

1、类和对象的理解

类:指的是对客观事物的一种描述,是对现实中一类具有共同属性和行为的事物的抽象。

对象:指的是具体存在的事物,是能够看得到摸的着的真实存在的实体。

举例说明:

我们可以将“汽车”看作一个类,在这个类中定义了汽车的属性和行为,比如颜色、品牌、速度等属性,以及加速、刹车、转弯等行为。

那么,当我们要描述具体一辆汽车时,就需要创建一个该类的对象,并根据需要设置其相应的属性值或对其进行行为操作。

另外,我们可以根据同一个类创建多个不同的对象,每个对象的属性值和行为可能都不同。例如一个品类的汽车肯定不止一台实车。

因此,也可以理解成,类表示的是共性,对象则用来表示具体个性。

2、类的组成

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

属性指的是事物的特征,在类中通过成员变量来体现(类中方法外的变量)。

行为指事物能执行的操作,在类中通过成员方法来体现。

3、类的定义和使用

在定义一个类时,需要指明类的属性和行为有哪些,即编写类的成员变量和成员方法。

定义一个类的基本格式:

class 类名 {
    // 成员变量
    数据类型 变量名1;
    数据类型 变量名2;
    ...

    // 构造方法
    类名(参数列表) {
        // 构造方法内容
    }

    // 成员方法
    返回值类型 方法名1(参数列表) {
        // 方法体
        return 返回值;
    }
    
    返回值类型 方法名2(参数列表) {
        // 方法体
        return 返回值;
    }

    ...
}

成员变量

指在类中定义的用于描述对象属性或状态的变量,在类实例化后,每个对象都有自己独立的一份这些变量,并且可以根据需要进行读取、修改等操作。

成员方法

指在类中定义的用于完成某种特定功能的方法。与成员变量不同的是,成员方法属于类的行为或动作,必须通过实例化后才能被调用和执行,并可能对对象的属性或状态进行修改。此外,每个方法由返回值类型、方法名和参数列表三部分组成,可以根据自身需求为类定义任意数量、任意类型和任意名称的成员方法。

案例分析

class Person {
    //成员变量
    String name;
    int age;

    public Person(String name, int age) {  // 构造方法
        this.name = name;
        this.age = age;
    }

    public void sayHello() {  // 成员方法
        System.out.println("Hello, my name is " + this.name);
    }

    public String getInfo() {  // 成员方法
        return "Name: " + this.name +
               ", Age: " + this.age;
    }
}

在案例中,定义了一个 Person 类来表示人这一概念,该类包含了 name 和 age 两个成员变量,以及 sayHello() 和 getInfo() 两个成员方法。

我们可以通过实例化 Person 类来创建不同的人,调用对应的成员方法来访问其属性或行为。

Person p1 = new Person("Alice", 20);
p1.sayHello();       // 输出:Hello, my name is Alice
System.out.println(p1.getInfo());   // 输出:Name: Alice, Age: 20

Person p2 = new Person("Bob", 25);
p2.sayHello();       // 输出:Hello, my name is Bob
System.out.println(p2.getInfo());   // 输出:Name: Bob, Age: 25

4、区分成员变量和局部变量

(1)成员变量

也称为类变量,通常位于类定义中,独立于任何方法之外。可以在类中的任何方法、构造函数或块中使用它们。

public class Person {
    private String name;   // 成员变量,表示Person对象的名字
    private int age;       // 成员变量,表示Person对象的年龄

    public void sayHello() {
        System.out.println("Hi, my name is " + name + ", and I'm " + age + " years old.");  // 可以在方法中使用成员变量
    }
}

(2)局部变量

局部变量只存在于一个特定的代码块(比如一个方法、循环或者if语句块)中,其生命周期与代码块相同。局部变量一般用来存储临时信息。

public void printSum(int x, int y) {
    int sum = x + y;   // 局部变量,用来保存两个整数的和
    System.out.println("The sum of " + x + " and " + y + " is " + sum);    
}

小结

成员变量用于描述对象的属性,位于类定义中,在整个类范围内访问;局部变量只拥有自己所在的作用域内的访问权限,不属于对象属性范畴。

5、private关键字

用在哪里:用于修饰成员(成员变量和成员方法)

作用是什么:保护成员不被别的类使用,被private修饰的成员只在本类中才能访问。

针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作:
(1)提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
(2)提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

6、this关键字

当有多个同名变量存在时,this 可以用来区分成员变量和局部变量。

public class Student {
    private String name;

    public void setName(String name) {
        this.name = name;
    }
}

在Student中的 setName 方法中,形参也叫做 name,而成员变量也叫做 name,使用 this 可以区分二者。这里的 this.name 表示成员变量,name 表示参数变量。

over

O泡时间  

2023-5-18 15:15:19

念首诗

观刈麦

[唐] 白居易

田家少闲月,五月人倍忙。

夜来南风起,小麦覆陇黄。

妇姑荷箪食,童稚携壶浆,

相随饷田去,丁壮在南冈。

足蒸暑土气,背灼炎天光,

力尽不知热,但惜夏日长。

复有贫妇人,抱子在其傍,

右手秉遗穗,左臂悬敝筐。

听其相顾言,闻者为悲伤。

家田输税尽,拾此充饥肠。

今我何功德?曾不事农桑。

吏禄三百石,岁晏有余粮,

念此私自愧,尽日不能忘。

  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值