一.类和对象.this指针 OOP语言的四大特征是什么? 抽象 封装.隐藏 继承 多态 类体内实现的方法会自动处理为inline函数. 类对象的内存大小之和成员变量有关 类在内存上需要对齐,是为了减轻cup在内存上的io次数 查看类对象的大小的指令:cl className.cpp /d1reportSingleClassLayout类名 一个类可以定义无数个对象,每个对象都有自己的成员变量,但是他们共享一套成员方法. 有一个问题:Q1:类中的成员方法是怎么知道要处理哪个对象的信息的? A1:在…
Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建和使用 看下面实例 我们在com.java1234.chap03.sec01包下新建一个Person类 package com.java1234.chap03.sec01; /** * Person类 文件名和类名必须一致 * @author user * */ public class Perso…
Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函数. """ camp = "Demacia" def attack(self): print("attack") 如何使用类:类的用法----实例化和引用自己的属性 一.内置类 例如int() 加参数就能用. x=int(10) prin…
1. 面向对象和面向过程思想 OC是面向对象的,C是面向过程的.面向对象和面向过程只是解决问题的两种不同思想 1. 面向对象和面向过程的区别 1) 以用电脑听歌为例子 a) 面向过程 ➢ 打开电脑 ➢ 播放电脑中的歌曲 ➢ 关闭电脑 b) 面向对象(不是相亲的“对象”) ➢ 电脑    ◇ 开机    ◇ 播放歌曲    ◇ 关机 2) 区别分析 ➢ 面向过程关注的是解决问题需要哪些步骤:面向对象关注的是解决问题需要哪些对象 ➢ 没有开发经验很难感受到它们的区别,两种思想都能达到解决问题的目的,…
面向对象是相对于面向过程而言的,是软件开发方法.面向对象把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统设计,更贴近事物的自然运行模式.本篇博客介绍Java面向对象的类和对象 目录: 面向对象整体概述 类和对象 Java类及类的成员 对象的创建和使用 内存解析 匿名对象 面向对象整体概述 面向对象概述    面向过程,强调的 是功能行为,以函数为最小单位,考虑怎么做.面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做. 例子: 人把大象装进冰箱 面向…
由于ASP.NET技术是全面向对象的,因此,要掌握这一技术,必须具备有扎实的面向对象理论基础 使用C#编程,所有的程序代码几乎都放在类中,不存在独立于类中之外的函数,因此,类是面向对象编程的基本单元 在绝大多数面向对象语言中,一个类都可以包含两种成员:字段和方法.字段与方法这两个概念是面向对象理论的术语,是通用与各种面向对象语言的.而在各种的具体面向对象语言(比如C#)中,可以简单地理解: 字段及变量,方法及函数. 字段:代表了类中的数据,在类的所有方法之外定义一个变量即定义了一个字段.在字段前…
我们每天在撸码,那么我们在敲什么东西呢?明显的我们在写类,写一个类,写一个接口,写某个接口里面写一些属性,在某个类里面写一个方法,然后以一个对象调用方法,对于j2ee来讲的话,可能还会写一些jsp,静态的html,还有不可避免的被大家一直诟病的xml配置文件.具体的java语言规范,以后我会专门做整理,在这里我只关注java面向对象. 要说面向对象,核心就是两个东西:类和对象 . 那么什么是类?自定义数据类型,类是某一批对象的抽象,所有的类都是引用数据类型. 什么是对象?具体存在的实体 . 2者…
1.类的概念 在生活中,说到类,可以联想到类别,同类,会想到一类人,一类事物等等.而这一类人或事物都是具有相同特征或特点和行为的,我们根据不同的特征或特点和行为将他们归类或分类.同时,当我们认识一个新事物的时候,我们一般来说是从过往的事物中总结事物的特点(特征),并比对新事物,把新事物进行归类,以达到认识新事物. 在Java程序中,类是对一组具有相同特征和行为的对象的抽象描述.可以看出和生活中对类的定义很像.但是在Java程序中,我们将其相同的特征称为属性,行为则称为方法. 理解: [1] 类包…
一.面向对象 1.面向过程编程 核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式. 优点:复杂的问题流程化.进而简单化 缺点:可扩展性差 2.面向对象 核心"对象"二字,对象指的是特征与技能的结合体, 基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种 上帝式的思维方式 优点:可扩展性强 缺点:编程的复杂度高于面向过程 重点:面向对象的核心体现是将数据和处理数据的程序…
第一章           面向对象: 1.1         什么是面向过程: 遇到某件事的时候,思考 “我该怎么做”然后一步一步实现的过程 1.2         什么是面向对象: 遇到某件事的时候,思考“我该让谁来做”,“谁”就是对象,他们怎么做是他们自己的事,最后一群对象结合起来做好一件事就行 1.3         面向对象举例 笔记本案例: 面向过程: 买一台组装电脑,先去网上找需要买那些零部件,然后找配置,然后在网上找零部件,价格和配置都合适,在购买完然后去电脑店去组装,然后在旁边…
类和对象是什么 创建类 新式类 和 经典类 面向对象三大特性 继承 封装 多态   面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“…
构造方法 1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名) 2.每个类可以有一个以上的构造器 3.构造器可以有0个.1个或1个以上的参数 4.构造器没有返回值 5.构造器总是伴随着new操作一起调用 示例: A.java public class A{ public A(){ System.out.println("调用了无参的构造函数"); } public A(String mess){ System.out.println("调用了有参的构…
一.三大编程范式 编程范式即编程的方法论,标识一种编程风格 三大编程范式: 1.面向过程编程(流水线式) 优点:极大的降低了程序的复杂度 缺点:应用场景固定住了,可扩展性差 2.函数式编程 特点: a.不修改外部传来值的状态 b.精简,可读性差 c.模仿数学里的函数 3.面向对象编程(是用来解决程序的可扩展性的) 优点:解决了程序的可扩展性 缺点:可控性差 二.面向对象设计与面向对象编程 1.面向对象设计 面向对象设计(Object oriented design):将一类具体事物的数据和动作整…
Java中的类和对象 引入面向对象的基本概念 假设,我们要设计一个LOL这样的游戏,使用面向对象的思想来设计,应该怎么做? 步骤 1 : 设计英雄这个类 LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女 所有这些英雄,都有一些共同的状态 比如,他们都有名字,hp,护甲,移动速度等等 这样我们就可以设计一种东西,叫做类,代表英雄这样一种事物 类: 英雄(Hero) 状态: 名字, 血量,护甲,移动速度 注: 本例用到了2种基本数据类型 分别是 float(浮点数), int(整数).…
面向对象 概念:     1.同一类事物的抽象描述,不是具体的    2.类和对象的关系:        类 是抽象的.        对象 是具体的.    3.对象的体征,称为"属性"    4.多个 对象的方法 + 属性 相同 构成一类6-2 类的编写构成.语法:     [修饰符] class 类名 {    ...    }    注意:             1.修饰符可有可无,如果写,类名和文件名必须相同.        2.类名驼峰命名法.类的属性-即 成员变量.  …
一. 类空间,对象空间 1. 类空间,对象空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量 动态属性就是定义在类中的方法 其中类的数据属性是共享给所有对象的,用类名是找不到对象属性的 创建一个对象/实例就会创建一个对象/实例的名称空间,存放对象/实例的名字,称为对象/实例的属性. 在obj.name会先从obj自己的名称空间里找name,找不到则去类中找,类也找不到就找父类...最后都…
类和对象 类用于指定对象的形式,它包含了数据表示法和用于处理数据的方法.类中的数据和方法称为类的成员.函数在一个类中被称为类的成员. 一.类定义 实际上并没有定义任何数据,但它定义了类的名称意味着什么,也就是说,它定义了类的对象包括了什么,以及可以在这个对象上执行哪些操作 类定义是以关键字 class 开头,后跟类的名称.类的主体是包含在一对花括号中.类定义后必须跟着一个分号或一个声明列表. class Box { public: double length; // 盒子的长度 double b…
一. 面向对象初识 我们在生活中做事都是面向过程的,前面实现一些基本逻辑功能代码也是用面向过程的语句实现的,后来学了函数,把这些功能又装到了函数里.但用面向过程的方法去写程序,只能实现一个功能,我们要实现很多功能时,需要写很多个代码块,每一个代码块的作用域都是全局的,要相对一个功能进行改动,还要考虑与其它代码块的联系,这样就造成了代码的可扩展性和维护性.那么装到函数里就好了吗?装到函数里变量只能作用于函数里,其他的函数无法使用变量.这时可以用面向对象的程序设计方法解决这些问题.面向对象的核心是对…
知识点1:堆和栈 每个应用程序可以获得的内存空间分为两种:堆(heap)和栈(stack). 堆又称为“自由存储区”,其中的内存空间的分配与释放是必须由程序员来控制的.例如,用GetMem函数获取了一定大小的内存空间,则在使用完后,必须调用FreeMem函数将空间释放,否则就会发生所谓的“内存泄漏”.“借债还钱,天经地义”. 栈又称为“自动存储区”,其中的内存空间的分配与释放是由编译器和系统自动完成的,不需要程序员过问.函数调用时按值传递的参数所占空间.函数中的局部变量等,都是在栈中被分配空间的…
知识点1:堆和栈 每个应用程序可以获得的内存空间分为两种:堆(heap)和栈(stack). 堆又称为“自由存储区”,其中的内存空间的分配与释放是必须由程序员来控制的.例如,用GetMem函数获取了一定大小的内存空间,则在使用完后,必须调用FreeMem函数将空间释放,否则就会发生所谓的“内存泄漏”.“借债还钱,天经地义”. 栈又称为“自动存储区”,其中的内存空间的分配与释放是由编译器和系统自动完成的,不需要程序员过问.函数调用时按值传递的参数所占空间.函数中的局部变量等,都是在栈中被分配空间的…
类是对某一类事物的描述,是抽象的.概念上的意义.对象是实际存在的该类事物的每一个个体,也被称为实例. 创建对象:包括声明对象和实例化对象 Person person;//声明 person = new Person();//实例化 创建对象内存划分 1.声明开辟一个栈空间 2.实例化开辟一个堆内存空间 3.声明指向实例化:栈空间的person指向堆空间的实例化…
这次我们要做一个日期类Date类 主要目的是    1.  熟悉-->构造不同参数的函数  2.善于利用已有的函数!! 题目要求: Date类要求 可设定年月日 可转换为字符串,并可指定分隔符,默认为’-’ 可获取若干天以前/后的日期 可计算与某个日期相隔的天数,日期的形式可能是日期对象,也可能是代表年月日的三个整数 可与某个日期比较大小,日期的形式同上 可计算星期几 解题思路: 1.设置类的变量,并创建构造函数. 2.创建 日期转换字符串函数,  分别创建带参数,和不带参数的函数 3.计算若干…
我们继续学习类与对象,上一篇我们定义了  坐标类(Point), 这次我们在Point的基础上,创建一个圆类(Circle). 案例:创建一个圆类 题目要求: 计算圆的周长和面积:求判断两个圆的位置关系,①两圆外离 d>R+r    ②两圆外切 d=R+r ③两圆相交 R-r<d<R+r(R>r)     ④两圆内切 d=R-r(R>r)    ⑤两圆内含d<R-r(R>r) 解题思路: 1.圆的属性:圆心(用一个坐标来表示),半径 2.计算周长函数 perime…
今天学习类与对象.先大致解释一下类与对象的含义. 对象:object 有物体这一概念,一切皆对象(物体),对象由静态的属性和动态的行为组成. 比如说水杯: 水杯的静态属性:材质,容量,质量,颜色 动态的行为:装水,被用来喝水 类:一组具有相同属性和行为的对象的抽象. 杯子类: 水杯  牙杯  保温杯 车类:自行车  汽车   溜溜车 今天我们通过设计一个坐标类来实现类的设计: 案例:设计坐标类: 题目要求: 设计坐标点的类,具有横纵坐标两个属性 具有初始化和计算两个点之间距离的方法. 解题思路:…
栈.堆.方法区 类(含方法)储存在方法区 main函数入栈 堆里面存储方法区中类与方法的地址 main函数调用方法,找堆里面方法的地址,再从方法区找到对应函数,函数入栈,用完出栈 总结: 1.类.方法储存在方法区 2.创建的对象储存在堆 3.定义的变量如int i=9;储存在栈…
这次我们来学习静态(static) 知识点 1.静态方法只能调用静态变量 2.静态变量属于整个Class,会随着发生变化. 案例:定义一个自动增长的学生类. 题目要求: 定义一个学生类,除了姓名.性别.学历层次. 还有自动增长的学号,本科以A开头,专科以B开头.  编号从100开始,如A0103. 方法思路: 1.定义学生属性,姓名name  性别sex   学历层次level   学号 studentNo 2. 学号增长函数(解决自动增长问题) 3.测试 程序代码: Student(学生类)…
转载: https://www.cnblogs.com/supren/p/7853377.html…
day06[类与对象.封装.构造方法] 面向对象类与对象三大特征——封装构造方法 能够理解面向对象的思想能够明确类与对象关系能够掌握类的定义格式能够掌握创建对象格式,并访问类中的成员能够完成手机类的练习能够理解对象的内存图能够说出成员变量和局部变量的区别能够理解private关键字的含义能够说出this关键字可以解决的问题能够理解构造方法的含义能够用封装的思想定义一个标准类 day06_01_面向对象思想的概述 day06_02_面向对象思想的举例 面向对象的语言中,包含了三大基本特征,即封装.…
面向对象基本概述.封装 01_面向对象(面向对象思想概述) * A:面向过程思想概述    * 第一步    * 第二步 * B:面向对象思想概述    * 找对象(第一步,第二步) * C:举例    * 买煎饼果子    * 洗衣服 * D:面向对象思想特点    * a:是一种更符合我们思想习惯的思想    * b:可以将复杂的事情简单化    * c:将我们从执行者变成了指挥者        * 角色发生了转换* E:面向对象开发    * 就是不断的创建对象,使用对象,指挥对象做事情.…
什么是面向对象编程? 我们先来看看几个概念: 面向过程程序设计 面向过程,是根据事情发展的步骤,按进行的顺序过程划分,面向过程其实是最为实际的一种思考方式,可以说面向过程是一种基础的方法,它考虑的是实际地实现,一般的面向过程是从上往下步步求精. 例如:如果你要吃饭,那需要:“买菜-洗菜-做饭-吃饭”等等,一步一步的来设计,就是面向过程…