Java 快速入门 知识精简(4)面向对象

类和对象概述

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

1)什么是类

  • 类是创建对象的蓝图或模板,它定义了一组属性(也称为字段或变量)和方法(函数),这些属性和方法共同描述了一个对象的状态和行为。
  • 类是抽象的,它不占用内存空间,直到您创建了一个对象实例。
  • 类可以看作是现实世界中某些具有共同特征的事物的模型。

2)什么是对象

  • 对象是类的一个具体实例,它使用类中定义的模板创建。
  • 对象是具体的,它在计算机内存中占用空间,并且有一个明确的生命周期。
  • 每个对象都可以拥有不同的属性值,即使它们属于同一个类。
  • 对象也称为实例(Instance),因为它是类的一个实例化。

比喻

  • :想象成汽车的设计图纸或计划。它详细描述了汽车应有的外观、性能和功能,但它本身不是一个实体,不能开动。
  • 对象:则是根据这个设计图纸实际制造出来的汽车。每一辆汽车都是设计图纸的具体实现,是可触摸、可驾驶的实体。

类最基本的两个成员

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

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

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

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

类的定义

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

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

示例:

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

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

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

// 方式2:
new 类名()//也称为匿名对象


示例:

class PersonTest{
        public static void main(String[] args){
                //创建Person类的对象
                Person per = new Person();


                //创建Dog类的对象
                Dog dog = new Dog();
        }
}

对象调用属性或方法

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

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

举例:

//声明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 name = new Animal();
                   ​​​​​​​name.legs = 4;   // 访问属性
                   ​​​​​​​System.out.println(name.legs);


                   ​​​​​​​name.eat();        // 访问方法
                   ​​​​​​​name.move();    // 访问方法
           }
}

匿名对象 (anonymous object)

我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象。

如:new Person().shout();

使用情况

1)如果一个对象只需要进行一次方法调用,那么就可以使用匿名对象。

2)我们经常将匿名对象作为实参传递给一个方法调用。

内存解析

堆(Heap)

此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。

这一点在Java虚拟机规范中的描述是:所有的对象实例以及数组都要在堆上分配。

栈(Stack)

是指虚拟机栈。虚拟机栈用于存储局部变量等。

局部变量表存放了编译期可知长度的各种基本数据类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference类型,它不等同于对象本身,是对象在堆内存的首地址)。 方法执行完,自动释放。

方法区(Method Area)

用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

构造器

构造器(或构造方法

Constructor 构造器

1)构造器是类的一个特殊方法

2)用于创建类的对象

3)初始化对象的信息

格式

权限修饰符 类名(形参列表){}

示例

Person(){

        定义属性

}

Person(String name){

        this.name = name;

}

调用

Person person = new Person( );   // 无参构造器 Person()

this 关键字:

1)this 是一个指向当前对象的引用

2)可以连环调用

        一个构造器可以通过 this(参数列表) 调用同一类中的另一个构造器

说明

this( ) 语句必须放在构造器中的第一行

super 关键字:

1)super 是指向当前对象的父类(即超类)的引用

使用说明:

  • 如果没显示的定义类的构造器,则系统默认提供一个空参的构造器。
  • 一旦我们显示的定义了类的构造器后,系统不再提供默认的空参构造器。
  • 一个类中定义的多个构造器,彼此构成重载
  • 一份类中,至少会有一个构造器

属性赋值的先后顺序

  • 默认初始化
  • 显示初始化
  • 构造器初始化
  • 通过“对象.方法”或“对象.属性”的方法赋值

JavaBean

所谓JavaBean,是指符合如下标准的Java类

1)类是公共的

2)有一个无参的公共构造器

3)访问属性的get、set方法

JavaBean示例​​​​​​​

public class UserBean {

    // 定义属性
    private String name;
    private int age;

    // 无参构造器
    public UserBean() {
    }

    // Getter 方法
    public String getName() {
        return name;
    }

    // Setter 方法
    public void setName(String name) {
        this.name = name;
    }

    // Getter 方法
    public int getAge() {
        return age;
    }

    // Setter 方法
    public void setAge(int age) {
        this.age = age;
    }
}

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tangy范

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值