类和对象

7. 第 7 章 类和对象简介

爷,独闯天下 提交于 2020-01-23 03:02:14
1. 面向过程编程是一种以执行程序操作的过程或函数为中心的方法。 2. 应该始终应大写字母作为类的开头。 3. 成员变量通常被设为私有,用来对它进行保护。然后创建公共函数,以便允许类外的代码进行访问。 4. 当一个类函数定义在类声明中时,被称为内联函数。内联函数通常很简短。 5. 内联函数将代码直接插入到程序相应位置,避免了函数调用所产生的开销。 6. 构造函数:是特殊的公共成员函数,在创建类对象时会被自动调用。如果没有手动编写构造函数,则 c++ 会提供一个。 7. 构造函数没有返回值,名称必须跟所属类名相同。没有形参的构造函数被称为默认构造函数。使用默认构造函数定义对象时,不传实参,所以不加括号。设计类时,始终应该包含一个默认构造函数。 8. 析构函数是与类名具有相同名称的公共成员函数,在对象被销毁时,它会被自动调用。 9. 通过值传递对象,需要进行大量复制操作,性能较低,应该通过传引用来避免。而传递引用能够修改对象,为了避免误操作,需要将对象作为常量引用进行传递。 10. 当一个类被嵌套在另一个类中时,被称为对象组合。 11. 类声明存储在自己的头文件中,该文件叫做类规范文件,文件名称与类名相同,扩展名为 .h 。任何使用该类的文件都需要引用该头文件。 12. 类的成员函数定义在单独的 .cpp 文件中,该文件称为类实现文件。 13. 头文件保护符能防止头文件被意外的包含多次

Java编程语言 02 类和对象

我只是一个虾纸丫 提交于 2020-01-22 02:43:41
Java类中有属性和方法两种代码块, 因为数据的安全性,数据区也就是实例区全部封装 。访问,修改实例域都是特定的函数,getXXX(),setXXX()。所以属性(实例域)都是private修饰。只有类的对象才可以访问。 方法 :一般是用public调用。方法的参数有显式和隐式之分,显示就是那些需要输入的参数,隐式就是对象本身,在方法中如果需要使用到对象本身的实例域(属性),使用this.XXX。调用这个属性。 值传入和引用传入: 这就又引出了一个问题,如果我 把参数传入其中函数中,如果函数中出现改变传入参数数据的现象,当方法结束调用时,会不会把这种改变保留呢?这个需要观察参数传入的方式,值传入和引用传入。值传入:就是把这个数据拷贝 下来,传入参数中。引用传入:就是把变量的地址传入方法中。Java中值传递,所以当参数是基本数据类型时候,不会出现调用完成后,参数本身发生改变;当 参数是一个对象引用(对象变量)的时候,会把引用拷贝给方法,方法通过拷贝出来的地址访问修改对象,当方法结束时,对象引用本身不会出现改变,但是,对象的修改会被保留下来。 **final 修饰:**这个修饰符修饰变量的时候,当数据是一般数据类型的时候,以后程序运行也不能修改这个变量。而当数据是引用数据类型的时候,例如:StringBuilder,对象本身引用会一直指向那个对象,而对象属性的修改不受干扰。 来源:

3.类和对象的关系

ぃ、小莉子 提交于 2020-01-21 17:42:11
类与对象的关系: 类是一种抽象的数据类型,它是对某一类事物的整体描述/定义,但是并不能代表某一个具体的事物 动物、植物、手机、电脑......这些都是抽象概念。例如动物里面有猫狗主,植物里面有花草,手机里面有苹果,安卓,电脑里面有Linux、Windows的操作系统。这是真实生活中的样子。 放在类里面,比如Person类代表一个人,人就可以有很多、Pet类代表宠物类,也会有很多宠物、Car类代表车,也有很多车等等,这些类都是用来描述一系列事物的共同特征,把他抽象出来的一个感觉,而对象是抽象的具体实例。这些类都是用来描述/定义某一类具体事物应该具备的特点和行为。 对象是抽象概念的具体实例: 张三就是一个具体实例,因为张三属于一个人,而张三家里的旺财就是狗的一个具体实例。 具体的对象能够体现出一些具体的特点,展现出功能的是具体的实例,而不是一个抽象的概念 创建对象与初始化对象: 使用new关键字创建对象 使用new关键字创建对象的时候,除了分配内存空间之外,还会给创建好的对象 进行默认初始化 以及对类中的构造器的调用 1 package com.oop.demo02; 2 3 //学生类 4 5 public class Student { 6 7 //属性:字段 8 String name;//null 9 int age;//0 10 11 //方法 12 public void

java学习笔记——内部类和Object根类

只愿长相守 提交于 2020-01-20 22:10:28
内部类和Object根类 文章目录 内部类和Object根类 内部类 普通内部类 内部类的特点 匿名内部类 Object Object概述 基本方法 内部类 内部类简单使用类内部的类就是内部类。 位置:把一个类定义到另一个类中,那么内部的类就是内部类。 注意:内部类不能直接创建 创建内部类的语法: 外部类.内部类 变量名 = new 外部类对象.new内部类对象 内部类的外部类的方法如果想要访问内部类的方法,必须创建内部类的对象,根据内部类的对象来访问。 普通内部类 class Outter { int num ; public void outMethod ( ) { System . out . println ( "我是外部的类的方法" ) ; } class Inner { int innerNum ; public void inMethod ( ) { System . out . println ( "我是内部的类的方法" ) ; } } } public class TestInner { public static void main ( String [ ] args ) { //创建内部类的对象 外部类.内部类 变量名 = new 外部类对象.new内部类对象 Outter . Inner inner = new Outter ( ) . new Inner

Java学习--类和对象以及部分继承知识总结

泄露秘密 提交于 2020-01-19 20:08:29
1.类 类是构造对象的模板或者蓝图。由类构造对象的过程叫做创建类的实例。 封装 实现封装意义在于绝对不能让类中的方法直接访问其他类中的实例字段。只能通过对象的方法与对象数据进行交互。可以提高重用性和可靠性。 2.对象 对象的三个特性: (1)行为 (2)状态 (3)标识 3.类与类之间的关系 依赖——“use-a” 聚合——“has-a” 继承——“is-a” 用var声明局部变量 如果可以从变量的初始值推导出它们的类型,可以用var关键字声明局部变量,而无须指定类型。 ps:var关键字只能用于方法中的 局部变量 。参数和字段的类型必须声明。 Emploee harry = new Employee(); 可以声明为:var harry = new Empoloyee(); 4.静态字段和静态方法 静态字段 个人理解其含义就是将某个字段设为静态的目的就是因为此字段可以被所有的实例所共享,即使没有对下你个,它也存在。静态字段不属于任何单个的对象,它属于类。 静态方法 静态方法是不在对象上执行的方法。它不使用任何的对象,换句话说,它没有隐式参数。 用一段代码总结所学知识: public class ConstructorTest { public static void main(String[] args) { var staff = new Employee[3]; staff

Java 类和对象

久未见 提交于 2020-01-15 04:59:32
1.类和对象初步认识 面向对象就是用代码(类)来描述客观世界的事物的一种方式. 一个类主要包含一个事物的属性和行为 2.类和类的实例化 类就是一类对象的统称。对象就是这一类具体化的一个实例。一个类可以产生无数个对象 基本语法 // 创建类 class < class_name > { field ; //成员属性 method ; //成员方法 } // 实例化对象 < class_name > < 对象名 > = new < class_name > ( ) ; 注: class为定义类的关键字,ClassName为类的名字,{}中为类的主体。 类中的元素称为:成员属性。类中的函数称为:成员方法。 示例: class Person { public int age ; //成员属性 实例变量 public String name; public String sex ; public void eat ( ) { //成员方法 System . out . println ( "吃饭!" ) ; } public void sleep ( ) { System . out . println ( "睡觉!" ) ; } } 类的实例化 用类类型创建对象的过程,称为类的实例化 1.类只是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它。 2

类和对象的绑定方法及非绑定方法

£可爱£侵袭症+ 提交于 2020-01-13 13:22:40
目录 一、绑定方法 1.1 对象的绑定方法 1.2 类的绑定方法 二、非绑定方法 三、练习 3.1 绑定方法小结 3.2 非绑定方法小结 类中定义的方法大致可以分为两类:绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。 一、绑定方法 1.1 对象的绑定方法 在类中没有被任何装饰器修饰的方法就是 绑定到对象的方法,这类方法专门为对象定制。 class Person: country = "China" def __init__(self, name, age): self.name = name self.age = age def speak(self): print(self.name + ', ' + str(self.age)) p = Person('Kitty', 18) print(p.__dict__) {'name': 'Kitty', 'age': 18} print(Person.__dict__['speak']) <function Person.speak at 0x10f0dd268> speak即为绑定到对象的方法,这个方法不在对象的名称空间中,而是在类的名称空间中。 通过对象调用绑定到对象的方法,会有一个自动传值的过程,即自动将当前对象传递给方法的第一个参数(self,一般都叫self,也可以写成别的名称)

类和对象

孤街醉人 提交于 2020-01-13 07:06:32
https://blog.csdn.net/weixin_43730061/article/details/88801774 C++类和对象详解 https://blog.csdn.net/weixin_43979735/article/details/97259656 类与对象(上篇) https://blog.csdn.net/Jochebed666/article/details/84034119 c++类和对象 来源: CSDN 作者: Steven&Aileen 链接: https://blog.csdn.net/qq_25144391/article/details/103908439

Python类属性和类方法

倾然丶 夕夏残阳落幕 提交于 2020-01-13 00:29:09
01. 类的结构 1.1 术语 —— 实例 使用面相对象开发, 第 1 步 是设计 类 使用 类名() 创建对象, 创建对象 的动作有两步: 1) 在内存中为对象 分配空间 2) 调用初始化方法 __init__ 为 对象初始化 对象创建后, 内存 中就有了一个对象的 实实在在 的存在 —— 实例 因此,通常也会把: 创建出来的 对象 叫做 类 的 实例 创建对象的 动作 叫做 实例化 对象的属性 叫做 实例属性 对象调用的方法 叫做 实例方法 在程序执行时: 对象各自拥有自己的 实例属性 调用对象方法,可以通过 self. 访问自己的属性 调用自己的方法 结论 每一个对象 都有自己 独立的内存空间 , 保存各自不同的属性 多个对象的方法 , 在内存中只有一份 ,在调用方法时, 需要把对象的引用 传递到方法内部 1.2 类是一个特殊的对象 Python 中 一切皆对象 : class AAA: 定义的类属于 类对象 obj1 = AAA() 属于 实例对象 在程序运行时, 类 同样 会被加载到内存 在 Python 中, 类 是一个特殊的对象 —— 类对象 在程序运行时, 类对象 在内存中 只有一份 ,使用 一个类 可以创建出 很多个对象实例 除了封装 实例 的 属性 和 方法 外, 类对象 还可以拥有自己的 属性 和 方法 类属性 类方法 通过 类名. 的方式可以 访问类的属性

【C++】寒假学习-类和对象

回眸只為那壹抹淺笑 提交于 2020-01-11 08:54:50
1. C++内存布局分为几个区域,各自具备什么特点? 在C++中,程序在内存中的存储被分为五个区: 1)、栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2)、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。 3)、全局/静态区(static):全局变量和静态变量的存储是 放在一块的,在程序编译时分配 4)、文字常量区:存放常量字符串 5)、程序代码区:存放函数体(类的成员函数、全局函数) 的二进制代码 2. 当定义类时,编译器会为类自动生成哪些函数?这些函数各自都有什么特点? 对于一个空类,C++编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝(复制)构造函数、赋值函数。 1)、默认构造函数(default constructor): 在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,称为合成的构造函数(synthesized default constructor)。C+