Java语言的基本元素:类和对象

引入

人认识世界,其实就是面向对象的。比如,我们认识一下美人鱼(都没见过)

经过“仔细学习”,发现美人鱼通常具备一些特征:

  • 女孩
  • 有鱼尾
  • 美丽

这个总结的过程,其实是抽象化的过程。抽象出来的美人鱼的特征,可以归纳为一个美人鱼类。而图片中的都是这个类呈现出来的具体的对象。

类和对象概述

类(Class)和对象(Object)是面向对象的核心概念。

1、什么是类

:具有相同特征的事物的抽象描述,是抽象的、概念上的定义。

2、什么是对象

对象:实际存在的该类事物的每个个体,是具体的,因而也称为实例(instance)。

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

 

3、类与对象的关系错误理解

曰:“白马非马,可乎?”
曰:“可。”
曰:“何哉?”
曰:“马者,所以命形也。白者,所以命色也。命色者,非命形也,故曰白马非马。”

 

类的成员概述

面向对象程序设计的重点是类的设计。类的设计,其实就是类的成员的设计;现实世界的生物体,大到鲸鱼,小到蚂蚁,都是由最基本的细胞构成的。同理,Java代码世界是由诸多个不同功能的类构成的。

 

现实生物世界中的细胞又是由什么构成的呢?细胞核、细胞质、…

Java中用类class来描述事物也是如此。类,是一组相关属性和行为的集合,这也是类最基本的两个成员。

属性:该类事物的状态信息。对应类中的成员变量

  • 成员变量 <=> 属性 <=> Field

行为:该类事物要做什么操作,或者基于事物的状态能做什么。对应类中的成员方法

  • (成员)方法 <=> 函数 <=> Method

举例

面向对象完成功能的三步骤

步骤1:类的定义

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

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

举例1

public class Person{
    //声明属性age
    int age ;                       
    
    //声明方法showAge()
    public void eat() {        
        System.out.println("人吃饭");
    }
}

举例2

public class Dog{
    //声明属性
    String type; //种类
    String nickName; //昵称
    String hostName; //主人名称
    
    //声明方法
    public void eat(){ //吃东西
        System.out.println("狗狗进食");        
    }
}
public class Person{
    String name;
    char gender;
    Dog dog;
    
    //喂宠物
    public void feed(){
        dog.eat();
    }
}

步骤2:对象的创建

创建对象,使用关键字:new

创建对象语法:

//方式1:给创建的对象命名
//把创建的对象用一个引用数据类型的变量保存起来,这样就可以反复使用这个对象了
类名 对象名 = new 类名();

//方式2:new 类名()//也称为匿名对象
举例:
class PersonTest{
    public static void main(String[] args){
        //创建Person类的对象
        Person per = new Person();
        //创建Dog类的对象
        Dog dog = new Dog();
    }
}

步骤3:对象调用属性或方法

对象是类的一个实例,必然具备该类事物的属性和行为(即方法)。

使用"对象名.属性" 或 "对象名.方法"的方式访问对象成员(包括属性和方法)

举例1:

//声明Animal类
public class Animal { //动物类
    public int legs;

    public void eat() {
        System.out.println("Eating.");
    }

    public void move() {
        System.out.println("Move.");
    }
}
//声明测试类
public class AnimalTest {
    public static void main(String args[]) {
        //创建对象
        Animal xb = new Animal();
        xb.legs = 4;//访问属性
        System.out.println(xb.legs);
        xb.eat();//访问方法
        xb.move();//访问方法
    }
}

图示理解

 

 举例2:针对前面步骤1的举例2:类的实例化(创建类的对象)

public class Game{
    public static void main(String[] args){
        Person p = new Person();
        //通过Person对象调用属性
        p.name = "康师傅";
        p.gender = '男';
        p.dog = new Dog(); //给Person对象的dog属性赋值
        
        //给Person对象的dog属性的type、nickname属性赋值
        p.dog.type = "柯基犬";
        p.dog.nickName = "小白";
        
        //通过Person对象调用方法
        p.feed();
    }
}
posted @ 2023-04-16 23:03  晓枫的春天  阅读(245)  评论(0编辑  收藏  举报