楼主: 路雨兮梦
40 0

[教育经济学基本知识] Java学习日志--面向对象(类和类的成员篇) [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
40 点
帖子
3
精华
0
在线时间
0 小时
注册时间
2018-9-21
最后登录
2018-9-21

楼主
路雨兮梦 发表于 7 小时前 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

一、编程思想的设计模式

面向过程是一种以功能实现为核心的编程方式。它强调的是解决问题的具体步骤,通过分析问题的流程,将每一步操作封装成函数,然后按顺序调用这些函数来完成任务。这种编程方式关注的重点在于“怎么做”,即功能的逐步执行过程。

而面向对象则是以现实世界中的事物为模型进行程序设计的思想。它不再专注于过程本身,而是思考完成某项任务需要哪些对象参与,每个对象应具备什么属性和行为。通过对象之间的协作来达成目标。

面向对象可以看作是面向过程的进阶形式。它将对象作为基本的构建单元,更贴近人类对现实世界的认知逻辑,使得系统结构更加清晰,代码易于维护与扩展,特别适用于大型项目的开发。不过,在运行效率方面,通常会比面向过程略低一些。

---- 关注点从功能实现转向了参与者(类)的设计

二、类与对象的基本概念

1、类

  • 类是对具有相同特征和行为的一类事物的抽象描述。
  • 本质上,类是一种自定义的数据类型,内部包含属性(成员变量)和方法(成员函数)。
  • 定义类之后,可以用它来创建多个实例,也就是对象。
  • 类中的属性也称为实例变量或成员变量;类中的方法也称为实例方法或成员方法。
  • 类的作用是描述对象的结构:有哪些属性、能执行哪些操作。
  • 类的定义格式如下所示:
public class 类名{
    // 类体
    // 属性(成员变量)--静态的描述 --多个
    [修饰符] 数据类型 变量名 [=值];

    // 行为(成员方法) --动态的描述 --多个
    public void 方法名(){
        方法体;
    }
}

2、对象

如果把类比作一种数据类型,那么对象就是该类型的具体变量。类就像一个模板,可以通过它创建出多个结构一致的对象实例。每一个对象都拥有与其所属类相同的属性和方法。

我们可以通过“对象名.属性名”的方式访问并修改对象的属性值,也可以通过“对象名.方法名”来调用其对应的方法。

三、属性与方法详解

1、属性

类中定义属性的语法结构如下:

[修饰符] 数据类型 属性名 = [初始化值];

方括号 [ ] 中的内容是可以省略的部分。

  • 常见的权限修饰符包括:private、缺省(默认)、protected、public。
  • 属性是类中用于静态描述对象状态的成员变量,也可称为全局变量。其数据类型可以是任意类型,包括基本数据类型、数组类型或对象类型。
  • 成员变量随着对象的创建而被分配在堆内存中,并随对象的存在而存在。
  • 若未显式赋值,类中的属性会根据其类型获得相应的默认初始值:
数据类型 默认值
整数类型(byte, short, int, long) 0
浮点数类型(float, double) 0.0
字符类型(char) 空格
布尔类型(boolean) false
字符串类型(String)及其他引用类型 null
  • 在类中定义的属性属于全局变量,作用范围覆盖整个类及其所有方法;而在方法内部定义的参数或变量则为局部变量,仅限于该方法内使用。

2、方法

2.1 方法的概念

  • 方法是将某一特定功能封装在类中的代码块,用于实现具体的操作。
  • 它是对类或对象行为特征的抽象,目的是实现功能复用,提升代码的可读性和可维护性。
  • 在Java中,方法不能脱离类独立存在,必须定义在类的内部。
  • 方法的基本语法格式如下:
修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, …) {
    方法体程序代码...
    return 返回值;
}

2.2 返回值类型说明

  • 若方法不返回任何值,则需使用 void 声明返回类型。此类方法中一般无需 return 语句;若使用,只能写成“return;”,表示结束当前方法。
  • 若方法有返回值,则必须在声明时指定返回值的具体类型,并在方法体内使用“return 数据;”语句返回对应类型的值,且返回值类型必须与 return 的表达式一致。
  • 当无法确定具体返回类型时,可暂时使用 Object 类型(因其为 Java 所有类的根父类),但通常不推荐这样做。
  • 方法参数若有多个,应用逗号 ‘,’ 分隔开。

四、对象在内存中的存储机制

  • 堆内存:用于存放由 new 创建的对象、数组以及对象的实例变量(即属性的实际内容)。堆空间需要通过 new 关键字动态分配。
  • 栈内存:主要存储基本数据类型的变量、局部变量以及对象的引用。需要注意的是,对象本身并不存放在栈中,栈中保存的只是指向堆内存地址的引用变量。
  • null 值的意义:null 并不是一个有效的对象实例,也不占用对象内存空间。它只是一个特殊的值,表示引用未指向任何对象。因此,null 可以赋给引用类型变量,但不能赋给基本数据类型。
  • 引用传递的本质:同一块堆内存可以被多个栈中的引用同时指向,不同引用可通过同一地址修改共享的堆内存内容。
  • 垃圾内存:指程序中已经没有任何引用指向的堆内存空间。这部分空间被称为“垃圾”,将由 JVM 的垃圾收集器(GC)在适当时机自动回收,释放内存资源。

五、类中的数组应用

在类中可以定义数组类型的属性,既可以是一维数组也可以是多维数组。数组本身作为引用类型,其实例存储在堆中,而类中的字段保存的是对该数组的引用。通过这种方式,可以在对象中管理一组相关数据,增强类的数据表达能力。

类属于引用数据类型,是数据类型中的一种。通过定义一个类,我们可以创建多个对象实例。例如:

Person p1 = new Person();
Person p2 = new Person();

接着可以使用该类来声明一个数组,用于存储这些对象。当需要访问某个对象的属性或调用其方法时,可以通过“数组[下标].属性名”或“数组[下标].方法名”的方式实现,并结合循环结构批量处理对象数据。

Person[ ] p  = new Person(){p1,p2};

六、类·构造器

1、基本概念

在Java中,语句“类名称 对象名称 = new 类名称();”实际上会触发构造函数的调用。其中,关键字 new 被称为对象创建运算符,主要作用是为对象分配内存空间,并将内存初始化为默认值。在完成内存分配与初始化后,new 会进一步调用相应的构造函数,以完成对象的初始化过程。

构造函数,也称构造器或构造方法,通常位于类的属性和普通方法之间,其基本格式如下所示:

public class Person {
    String name;
    int age;

    public Person(){

    }
    public Person(String name,int age){
        this.name = name;
        this.age = age;
    }

2、构造函数的主要特征

  • 构造函数的名称必须与所属类的名称完全一致。
  • 构造函数没有返回值类型,这一点不同于使用 void 声明的方法。
  • 构造函数并非必须显式编写,若未定义,系统将自动提供一个无参的默认构造函数。
  • 如果类中没有手动定义任何构造器,编译器会在编译期间自动添加一个无参数的构造函数,以便支持对象的创建。
  • 一旦类中定义了至少一个构造函数(无论是否有参数),系统将不再自动提供无参构造函数,此时如需无参构造,必须手动声明。

3、构造函数的核心功能

构造函数主要用于对象的创建及初始化操作。其中,有参构造函数的作用是在创建对象的同时,对对象的成员属性进行赋值初始化。这种方式能够有效减少后续单独设置属性的代码量,提升编码效率。

例如,在创建对象时直接通过有参构造器完成属性赋值,可以简化代码流程。参考如下示例:

Person p = new Person("王五",23);
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:java学习 学习日志 面向对象 Java jav
相关内容:Java面向对象学习

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-5 21:37