首页 > 编程语言 >面对对象编程:OOP类与对象详细笔记

面对对象编程:OOP类与对象详细笔记

时间:2024-11-09 19:45:45浏览次数:3  
标签:name 对象 age 编程 int OOP 方法 public

文章目录

类的概念:

类是一种用户定义的数据类型,它描述了一组具有相同特性和行为的对象。类定义了对象的状态(属性)和行为(方法)。

类的定义:

类的定义通常包括类名、成员变量(属性)、构造方法、成员方法等。类名通常首字母大写,采用名词形式。

public class Student {
    
    // 私有成员变量
    private String name;
    private int age;
    
    // 构造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    // 成员方法
    public void study() {
        System.out.println(name + " 正在学习。");
    }
    
    // Getter和Setter方法
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public int getAge() {
        return age;
    }
    
    public void setAge(int age) {
        this.age = age;
    }
    
}

类的属性(成员变量):

成员变量是类中的数据字段,用于存储对象的状态。

成员变量可以有不同的数据类型,并且可以根据需要设置访问级别(如private、public)。

private String name;
private int age;

类的方法(成员方法):

成员方法是类中的函数,用于定义对象的行为。

成员方法可以没有参数(无参方法),也可以接受参数(有参方法)。

方法可以返回值,也可以不返回值(使用void类型)。

public void study() {
    System.out.println(name + " 正在学习。");
}

对象

对象的创建与使用:

创建对象时,需要使用new关键字和构造方法来初始化对象。

一旦创建了对象,就可以通过对象的引用调用其方法或访问其属性。

Student xiaoming = new Student("小明", 18);
xiaoming.study(); // 调用study方法
System.out.println(xiaoming.getName()); // 调用getName方法

this关键字:

this关键字是一个特殊的指针,它指向当前对象的实例。

this可以用来区分成员变量和局部变量,也可以用来调用当前类中的其他方法或者变量。

public Student(String name, int age) {
    this.name = name; // 使用this关键字
    this.age = age;
}

构造方法:

构造方法是一种特殊的方法,它的名字必须与类名相同,并且没有返回类型。

构造方法用于初始化对象的状态,在创建对象时自动调用。

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

类与对象的关系:

类是对象的蓝图或模板,而对象是类的一个实例。

类定义了对象的结构和行为,对象则具体实现了这些结构和行为。

Student xiaoming = new Student("小明", 18); // 创建对象
xiaoming.study(); // 使用对象的方法

封装:

封装是一种将数据和操作数据的方法绑定在一起的技术,它可以保护对象的内部状态不被外部直接访问。

通过设置成员变量为private,并提供公共的gettersetter方法,可以实现封装。

private String name;
private int age;

public String getName() {
    return name;
}

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

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

无参方法

方法的定义:

方法是在类中定义的函数,用于执行特定的任务。

方法可以有参数也可以没有参数,可以有返回值也可以没有返回值(使用void类型)。

public void greet() {
    System.out.println("你好!");
}

方法的调用:

调用方法需要通过对象的引用或者类名(如果是静态方法),并且提供必要的参数。

如果方法有返回值,可以通过赋值给变量来接收返回的结果。

Student xiaoming = new Student("小明", 18);
xiaoming.greet(); // 调用greet方法

方法的返回值:

方法可以返回任何类型的值,包括基本类型、引用类型、数组等。

如果方法没有返回值,应该使用void类型。

public String sayHello() {
    return "你好!";
}

有参方法

方法的参数:

方法可以接受参数,参数是在方法定义时声明的,并在方法调用时传递的值。参数可以是基本类型、引用类型或数组。

public void introduce(String name) {
    System.out.println("我的名字是 " + name);
}

方法的返回值:

方法可以返回任何类型的值,包括基本类型、引用类型、数组等。如果方法没有返回值,应该使用void类型。

public int calculateSum(int a, int b) {
    return a + b;
}

方法的调用:

调用方法需要通过对象的引用或者类名(如果是静态方法),并且提供必要的参数。

如果方法有返回值,可以通过赋值给变量来接收返回的结果。

Student xiaoming = new Student("小明", 18);
xiaoming.introduce("小明"); // 调用introduce方法
int sum = xiaoming.calculateSum(10, 20); // 调用calculateSum方法

标签:name,对象,age,编程,int,OOP,方法,public
From: https://blog.csdn.net/2301_77163982/article/details/143650122

相关文章

  • 退休后编程?
    也算半退休状态,学习新的编程语言基本上不可能了,没精力也没用武之地。但是,我觉得有些代码,还会一直写下去。①VBA,我估计写了10年以上VB代码,用VB干过各种事情,应用软件,Web终端,通信的,办公的,共享软件……没想到,老了以后,发现可能会一直用下去,还是vb代码。如果我评价哪个语言最有价值,我认......
  • PHP、Java、Python、C、C++ 这几种编程语言都各有什么特点或优点?
    相信每一个计算机科班出身的同学或许都有这样的经历:在大三的某一天,仿佛打通了全身筋脉一般把三年的所学:“数电里的与非门——[计算机体系结构]——汇编语言——C语言——C++语言——Java语言”。所有知识全部串联了起来。所有这些语言的出现都仿佛都有了必然性和追根溯源的历史......
  • (21-3)基于深度强化学习的量化交易策略(OpenAI Baselines +FinRL+DRL+PyPortfolioOpt):数据
    21.6 数据预处理数据预处理是训练高质量机器学习模型的关键步骤,在这一步需要检查缺失数据并进行特征工程,以将数据转换为适合模型训练的状态。本项目的数据预处理江湾城以下工作:添加技术指标:在实际交易中,需要考虑各种信息,例如历史股价、当前持仓股票、技术指标等。本文演示......
  • Rust-AOP编程实战
    文章本天成,妙手偶得之。粹然无疵瑕,岂复须人为?君看古彝器,巧拙两无施。汉最近先秦,固已殊淳漓。胡部何为者,豪竹杂哀丝。后夔不复作,千载谁与期?——《文章》宋·陆游【哲理】文章本是不加人工,天然而成的,是技艺高超的人在偶然间所得到的。其实作者所说的“天成”,并不就是大自然的......
  • 实验3 类和对象-基础编程2
    实验任务1:Button.hpp,Window.hpp,task1.cpp,源码,运行测试结果如下#pragmaonce#include<iostream>#include<string>usingstd::string;usingstd::cout;//按钮类classButton{public:Button(conststring&text);stringget_label()const;......
  • PHP中的多线程与并发编程:如何提高处理能力
    在现代的网络应用中,处理能力是评估系统性能的一个关键指标。随着用户数量的激增和数据量的增加,单线程程序往往难以满足高并发的需求。虽然PHP本身是单线程的,但通过合理的多线程与并发编程技巧,我们依然可以提高处理能力,提升程序的响应速度和稳定性。理解PHP的并发模型是至关重要的......
  • 代码背后的智慧:20条编程感悟
    大家好,我是木宛哥;在10余年的工作经历让我深刻体会到软件开发不仅仅是写代码,更是一个系统化的交付过程。为此我总结了20条编程感悟,涵盖了代码规范、设计原则、测试方法与交付流程等多个方面;​通过遵循代码规范,让代码更加可读与可维护,同时合理的设计能够有效应对需求变化,模......
  • Java基础——面向对象
    1.面向过程&面向对象1.1.面向过程是一种线性的,第一步做什么,第二步做什么......适合处理简单的问题。1.2.面向对象运用分类的思维模式,思考问题要先进性哪些分类,然后对这些类进行单独思考。适合处理复杂的问题。对于复杂的问题,需要从宏观的整体上进行分析,需要使用面向......
  • 实验3 类和对象_基础编程2
    实验任务一1#pragmaonce2#include<iostream>3#include<string>45usingstd::string;6usingstd::cout;78//按钮类9classButton{10public:11Button(conststring&text);12stringget_label()const;13voidcl......
  • 类与对象—中
    目录一、类的6个默认成员函数1.默认成员函数概念2.默认成员函数分类二、C++提出构造函数、析构函数的背景1.构造函数的提出背景2.析构函数的提出背景3.案例分析三、构造函数1..构造函数概念2..构造函数特性2.1.特性1:构造函数的函数名与类名相同。2.2.特性2:构造函数......