成员变量

java自学-类与对象

99封情书 提交于 2019-12-09 16:03:29
1.面向对象和面向过程 java是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。 2.类 类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。 类就是面向对象,描述一类事物的属性和行为。 比如人是一个类,属性是姓名、年龄等,行为就是上学,吃饭等。 3.对象 对象:是一类事物的具体体现。对象是类的一个实例(比如new出来一个对象),必然具备该类事物的属性和行为。 对象是类的具体实例,比如描述人的一个类时People,对象就可以是People p = new People();p就是一个具体的对象,可以通过p操作属性和行为。 类是对一类事物的描述,是抽象的。 对象是一类事物的实例,是具体的。 类是对象的模板,对象是类的实体。 4.类的创建 格式 public class ClassName { //成员变量 //成员方法 } 成员变量:对应事物的属性 成员方法:对应事物的行为 举例 public class People{ //成员变量 String name;//姓名

Java基础——02(面向对象封装)

妖精的绣舞 提交于 2019-12-09 13:32:07
1.面向对象 面向对象思想是一种程序设计思想,这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面 向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。 区别: 面向过程:强调步骤。 面向对象:强调对象,这里的对象就是洗衣机。 2.对象内存图 1.一个对象,调用一个方法内存图 2.两个对象,调用同一方法内存图 3.一个引用,作为参数传递到方法中内存图 3.成员变量和局部变量区别 在类中的位置不同 (重点) 成员变量:类中,方法外 局部变量:方法中或者方法声明上 ( 形式参数 ) 作用范围不一样(重点) 成员变量:类中 局部变量:方法中 初始化值的不同(重点) 成员变量:有默认值 局部变量:没有默认值。必须先定义,赋值,最后使用 在内存中的位置不同 了解 成员变量:堆内存 局部变量:栈内存 生命周期不同 了解 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 成员变量的默认值: 4.封装 概述 面向对象编程语言是对客观世界的模拟,客观世界里成员变量都是隐藏在对象内部的,外界无法直接操作和修改。 封装可以被认为是一个保护屏障

C++中初始化列表的使用

Deadly 提交于 2019-12-09 12:13:12
1,初始化列表是在 C++ 中才引入的; 2,以“类中是否可以定义 const 成员?”这个问题来引入初始化列表: 1,const 这个关键字可以定义真正意义上的常量,也可以在某些情况下定义只读变量; 3,小实验: 1,下面的类定义是否合法?如果合法,ci 的值是什么,存储在哪里? 1 #include <stdio.h> 2 3 class Test 4 { 5 private: 6 const int ci; // const 作用于 C++ 中的成员变量后得到的是只读成员变量,只读成员变量是不可以出现在成员符号左边的;所以会出现第 10 行的错误信息; 7 public: 8 /* 9 Test() // 在这里编译器显示:ci 是一个 const 成员,没有进行初始化;因此如果要初始化 ci 成员变量,必须要在这一行进行,这个时候就让初始化列表出厂了; 10 { 11 ci = 10; // 在这里编译器显示:ci 在这个类中是一个只读的成员变量; 12 } 13 */ 14 15 /* 由上面的语句改换如下 */ 16 Test() : ci(10) // ci 在初始化之后可以改变,因为 ci 在这里只是一个只读的成员变量,仅仅是不能出现在赋值符号左边而已;我们依旧可以通过指针的方式来修改 ci 里面的值; 17 { 18 // ci = 10; 19 } 20 21

DLL导出类避免地狱问题的完美解决方案 (转)

不羁的心 提交于 2019-12-09 11:17:51
备注:在设计导出类时,在网上找到了这篇文章,非常的好,收藏了!网址: http://club.topsage.com/thread-497586-1-1.html DLL动态链接库是程序复用的重要方式,DLL可以导出函数,使函数被多个程序复用,DLL中的函数实现可以被修改而无需重新编译和连接使用该DLL的应用程序。作为一名面向对象的程序员,希望DLL可以导出类,以便在类的层次上实现复用。所幸的是,DLL确实也可以导出类。 然而事实却没这么简单,导出类的DLL在维护和修改时有很多地方必需很小心,增加成员变量、修改导出类的基类等操作都可能导致意想不到的后果,也许用户更新了最新版本的DLL库后,应用程序就再也不能工作了。这就是著名的DLL Hell(DLL地狱)问题。 DLL地狱问题是怎么产生的呢?看下面的例子,假设DLL有一个导出类ClassD1: class ClassD { public: int GetInt(); private: int m_i; }; int ClassD::GetInt() { return m_i; } 应用程序使用现在的代码来使用这个类: ClassD d; printf(“%d”, d.GetInt()); 程序进行正正常,没有什么问题。后来DLL需要升级,对ClassD进行了修改,增加了一个成员变量,如下: class ClassD // 修改后

Java学习笔记 - 基础篇

本小妞迷上赌 提交于 2019-12-08 04:32:16
一、面向对象的编程概念 观察现实对象两个性质:状态、行为。 面向对象的好处:模块化、隐藏信息。 继承:子类从父类(超类)继承状态和行为;子类可以改变父类的状态和行为。 接口:是无关对象用来进行彼此交互的设备;一个对象可以实现多个接口。 二、语言基础 变量 对象将它的状态存储在变量中;变量是一个由标识符命名的数据项。 声明变量的形式:<类型> <名称> JAVA 语言两大数据类型 原始类型数据(基本数据类型)、引用类型。 原始类型数据是不能再分解的数据类型(8种:byte、short、int、long、float、double、char、boolean),数据在作为函数参数是以“传值”方式工作的; 整数 byte:1字节长的整数;8位有符号的二进制补码整数 short:短整数;16位有符号的二进制补码整数 int:整数;32位有符号的二进制补码整数 long:长整数;64位有符号的二进制补码整数 实数 flat:单精度浮点数;32位IEEE 754浮点数 double:双精度浮点数;64位IEEE 754浮点数 其他类型 char:单一Unicode字符;16位Unicode字符 boolean:布尔值(true或false);8位/1位(8位空间,1位数据) 引用类型包括类(class)、接口(interface)、数组(array)。引用类型有时也称复合类型

IOS--set与get方法的理解

╄→гoц情女王★ 提交于 2019-12-07 14:50:06
目的: 为了能让类的成员变量正确的被外接访问,我们需要设置set和get方法。 用property就会自动生成get,set方法的过程中处理好retain,copy,release的关系,而且还可以在main中调用时使用 java习惯的点赋值,点调用,何乐而不为呢。 分析 1. set 函数 set 函数,对成员变量赋值。 Set函数的一般写法: -(void)setAge:(int)newage; 2.Get函数 getter函数,对成员变量取值。Get函数一般写法 -(int)age; 3. 点运算符在oc的类对象中不能访问成员变量,如dog.age=5,这里不是使用成员变量age,而是调用成员方法setAge,相当于给dog.age赋值,调用方法[dog setAge:5]; NSLog(@" %d ", dog.age); 这里也不是使用成员变量age,而是调用成员方法age, 使用dog.age表达式的值时,实际上就是调用成员方法age, [dog age]. " . " 不能调用成员变量,只是调用set函数和get函数的一种简写。 这里不能理解为定义了get函数和get函数就能调用成员变量,因为将这两个函数,不以一般相识书写时,使用dog.age时,就会报错 。 4. @property 和 @synthesize 定义set函数和get函数时

OC的@property和@synthesize

前提是你 提交于 2019-12-07 14:49:37
1. 成员变量和属性的区别。 @interface User : NSObject { int _height; // 成员变量,不会自动生成setter 和getter方法。 } @property ( strong , nonatomic ) NSString *uid; // 属性。 会自动生成setter和getter方法。 @property ( assign , nonatomic ) int age; 2. @property 和 @synthesize 声明一个setter getter 方法 @synthesize 实现setter getter 方法 在Xcode4.5及以后的版本中,可以省略@synthesize ,编译器会自动帮你加上getter 和 setter 方法的实现,并且默认会去访问_age这个成员变量,如果找不到_age这个成员变量,会自动生成一个叫做 _age 的 私有 成员变量。 如果加了 @synthesize age; 则可以使用age的成员变量。 3. 由于书写习惯,OC中定义成员变量的时候,习惯写 _age 的这种形式。 来源: oschina 链接: https://my.oschina.net/u/2418942/blog/519221

前端知识之HTML

て烟熏妆下的殇ゞ 提交于 2019-12-07 14:20:09
前端知识之HTML js的介绍 js 的全称: javascript ,布兰登 · 艾奇 LiveScript, javascript 我们要的学习的js主要三部分构成: ECMAscript语法 BOM Browser Object Model 浏览器对象模型 DOM Document Object Model 文档对象模型 js的基本使用 js也有自己的代码文件,文件格式以“.js”结尾. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script> alert(123) </script></body></html> 三种使用方式 行内式 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <h1 onclick="alert(123)">点我呀!!!</h1> //当点击 点我呀!!! 时会出现下边的图片显示</body></html> 内部导入 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title<

前端知识之HTML

主宰稳场 提交于 2019-12-07 14:19:08
前端知识之HTML js的介绍 js 的全称: javascript ,布兰登 · 艾奇 LiveScript, javascript 我们要的学习的js主要三部分构成: ECMAscript语法 BOM Browser Object Model 浏览器对象模型 DOM Document Object Model 文档对象模型 js的基本使用 js也有自己的代码文件,文件格式以“.js”结尾. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script> alert(123) </script></body></html> 三种使用方式 行内式 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <h1 onclick="alert(123)">点我呀!!!</h1> //当点击 点我呀!!! 时会出现下边的图片显示</body></html> 内部导入 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title<

前端知识之HTML

偶尔善良 提交于 2019-12-07 14:18:28
前端知识之HTML js的介绍 js 的全称: javascript ,布兰登 · 艾奇 LiveScript, javascript 我们要的学习的js主要三部分构成: ECMAscript语法 BOM Browser Object Model 浏览器对象模型 DOM Document Object Model 文档对象模型 js的基本使用 js也有自己的代码文件,文件格式以“.js”结尾. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <script> alert(123) </script></body></html> 三种使用方式 行内式 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <h1 onclick="alert(123)">点我呀!!!</h1> //当点击 点我呀!!! 时会出现下边的图片显示</body></html> 内部导入 <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title<