成员变量

封装 set方法 get方法 oc

江枫思渺然 提交于 2019-11-29 11:42:22
封装 封装就是成员变量的封装; 要有成员变量就要有类;有声明就有实现; @public表示下面的成员变量可以被别人任意赋值; 修改成员变量的方法: 第一个方法是直接对成员变量访问; 第二个方法是通过方法来传递成员变量来修改; 提供一个方法给外界设置age属性值;不需要返回值; 设置成员变量: 一般我们提供一个方法给别人来设置成员变量我们一般称为 set方法 ; set方法: 作用:可以在方法中对参数进行过滤; 命名规范:方法名必须以set开头;set后面跟上成员变量的名称,而且成员变量的首字母必须大写; set方法返回值一定是void; 一定要接收一个参数,而且参数类型跟成员边个两类型一致;形参的名称不能跟成员变量一样; - (void) setAge:(int)age; set方法实现; - (void) setAge:(int)newAge{ if (newAge <= 0) { newAge =1; } new = newAge; } 调用方法: Student *stu = [Student new]; [stu setAge:10]; 把成员变量设置到一个方法中,就是对成员变量的封装; 返回对象内部的成员变量: get方法 命名规范:肯定有返回值,返回值类型与成员变量类型一致; get方法的方法名与成员变量名一致; 声明: - (int)age; 实现: - (int

多态中成员访问特点

£可爱£侵袭症+ 提交于 2019-11-29 10:12:40
package day8; public class Polymorphyic { public static void main(String[] args) { Fruit f = new apple(); System.out.println(f.num);//成员变量运行看左边,输出父类 num,“10” apple a = new apple(); a.print();//成员方法看右边,输出子类 print(),“子类构造方法” } } class Fruit{ int num=10;//父类成员变量 public void print(){ System.out.println("父类构造方法"); } } class apple extends Fruit{ int num=20;//子类成员变量 public void print(){ System.out.println("子类构造方法"); } } 运行结果: 10 子类构造方法 总结: 成员变量:编译看左边父类,运行看 左边 父类 成员方法:编译看左边父类,运行看 右边 子类 来源: https://www.cnblogs.com/time123/p/11512987.html

成员变量和局部变量

无人久伴 提交于 2019-11-29 03:21:41
成员变量(全局变量) 局部变量 注意: -如果成员变量不是静态的,静态的方法访问不到。 -代码块修饰环节的声明变量,作用域在于整个代码块。 来源: CSDN 作者: 任贝贝 链接: https://blog.csdn.net/weixin_44059002/article/details/103243420

重学C语言之结构体

我与影子孤独终老i 提交于 2019-11-29 02:57:11
概念 结构体是一种构造类型,由若干个成员组成,成员可以是基本数据类型,或是另一个结构体 声明结构体 struct 结构体名 { 成员列表 }; 结构体名表示结构的类型名。 声明一个结构体表示创建一种新的类型名(自定义数据类型),然后用类型名定义变量。 struct Product { char name[10]; char shape[10]; char color[10]; float price; } 使用结构体定义变量有三种方式 第一种:声明结构体类型,再定义变量 struct Product p1; struct Product p2; p1和p2是结构体变量名,这两个变量具有相同的结构 类比: 类型名 变量名 int a; | | struct Product p; struct Product整体表示一种数据类型 定义结构体变量后,系统会为其分配内存单元 第二种:声明结构体类型时,同时定义变量(可以定义多个变量) struct 结构体名 { 成员列表 } 变量名列表; example: struct Product { char name[10]; char shape[10]; char color[10]; float price; } p1, p2; 第三种:直接定义结构体类型变量(匿名结构体,没有结构体名称) struct { 成员列表 } 成员变量;

C语言字节对齐分析

∥☆過路亽.° 提交于 2019-11-29 02:18:02
1、前言 什么是字节对齐呢?现代计算机中的内存空间都是按字节(byte)划分的,从理论上讲似乎任何类型的变量的访问都可以从任何地址开始,但是实际情况是在访问特定变量的时候经常需要在特定的内存地址进行访问,因此,就需要各种类型数据按照一定的规则在空间上排列,而不是顺序地一个接一个地排放,这就是字节对齐。 2、字节对齐的好处 各个硬件平台对存储空间的处理上有很大的不同,一些平台对某些特定类型的数据只能从某些特定的地址开始存取,比如有些架构的CPU在访问一个没有进行对齐的变量的时候会发生错误,那么在这种架构上编程必须保证字节对齐。其它平台可能没有这种情况,但是最常见的是如果不按照适合其平台要求对数据存放进行对齐,会在存取效率上带来损失,例如某些平台每次读都是从偶地址开始,如果一个int类型(32位系统)变量存放在偶地址开始的地方,那么一个读周期就可以读出32bit,而如果存放在奇地址开始的地方,就需要2个读周期,并对两次读出的结果进行高低字节的拼凑才能得到该32bit数据。 3、对齐的准则 有四个重要的基本概念,如下: (1)数据类型自身的对齐值:char类型数据自身对齐值为1字节,short类型数据为2字节,int/float类型数据为4字节,double类型数据为8字节; (2)结构体或类的自身对齐值:其成员中自身对齐值最大的哪个值; (3)指定对齐值:#pragma pack

IO流,对象序列化

老子叫甜甜 提交于 2019-11-29 00:14:12
对象序列化  序列化机制允许将实现序列化的Java对象转换成字节序列,这些字节序列可以保存在磁盘上,或者用于网络传输,以备以后重新恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。  对象的序列化(Serialize)指将一个Java对象写入IO流中,与此对应的是,对象的反序列化(Deserialize)则是指从IO流中恢复该Java对象。如要让某个对象支持序列化机制,则必须要让它的类是可序列化的(Serializable)。为了让某个类是可序列化的,该类需要继承如下两个接口之一:   1. Serializable接口   2. Externliazble接口 我们先从Serializable接口开始说起。当类继承了Serializable接口时,该类是可序列化的,即创建出来的对象,可以写入磁盘或者用于网络传输(基本上用于网络传输的类都是序列化的,否则程序会出现异常。若有接触过Java web开发的同学,在web应用中的HttpSession 或ServletContext就是可序列化的类)。 我们如何操作输入/输出可序列化的对象呢,答案是使用ObjectInputStream与ObjectOutputStream的字节流进行操作,这两个流不仅仅是字节流还是处理流,因此需要一个任意节点流作为基础。 下面实现将可序列化对象写入文件,并从该文件读取该对象

Python程序设计基础教学大纲

纵然是瞬间 提交于 2019-11-28 23:34:18
转载网址:https://mp.weixin.qq.com/s?__biz=MzI4MzM2MDgyMQ==&mid=2247486738&idx=1&sn=c5624774190b7f707d04f36d15bd5552&chksm=eb8aa648dcfd2f5ef922f832051b4782de195d161c40f3952042f5cab07a27075078936ccc2b&scene=21#wechat_redirect 《Python程序设计基础 》 教 学 大 纲 目 录 一、 课程简介 二 、 教学目的和要求 三 、 教学中应注意的问题 四、 教学内容 五 、 教学课时分配 六 、 教材与 参考书目 一、 课程简介 课程名称: Python 程序设计基础 课程编号: ********** 课程性质:必修 适用专业:非计算机专业 前导课程:无 考核方式:考试 建议学时: 48+16(可根据实际需要进行调整) 建议学期: 2、4、5 二 、 教学目的和要求 通过本课程的学习,使得学生能够理解 Python的编程模式(命令式编程、函数式编程),熟练运用Python运算符、内置函数以及列表、元组、字典、集合等基本数据类型和相关列表推导式、切片等特性来解决实际问题,熟练掌握Python分支结构、循环结构、函数设计以及类的设计与使用,熟练使用字符串方法,适当了解正则表达式

深入理解static关键字

巧了我就是萌 提交于 2019-11-28 16:50:01
提到static关键字,相信大家都不陌生,这是相对比较难以理解的一个关键字,相信各位也都能深深感受的到!本篇文章将好好总结一下static这个关键字。 文章目录 1、static存在的主要意义 2、static的独特之处 3、static应用场景 4、静态变量和实例变量的概念 5、静态变量和实例变量区别【重点常用】 6、访问静态变量和实例变量的两种方式 7、static静态方法 8、static静态代码块 9、static变量与普通变量区别 10、静态内部类 11、静态导包 12、static注意事项 13、final与static的藕断丝连 在开始讲static之前,我想让各位看一段有意思的代码: public class Test { static { System . out . println ( "test static 1" ) ; } static { System . out . println ( "test static 2" ) ; } public static void main ( String [ ] args ) { } } 看完程序,小白童鞋发话了:啥玩意?main方法中啥都没有,能运行啥?博主你个星星星… 运行结果: test static 1 test static 2 小白童鞋:那啥…那啥…博主我说啥了,我啥都没说… 其实

【面试宝典】:检验是否为合格的初中级程序员的面试知识点,你都知道了吗?查漏补缺

故事扮演 提交于 2019-11-28 14:14:09
欢迎关注文章系列,一起学习 《提升能力,涨薪可待篇》 《面试知识,工作可待篇》 《实战演练,拒绝996篇》 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《面试知识,工作可待篇》-Java笔试面试基础知识大全 前言 是不是感觉找工作面试是那么难呢? 在找工作面试应在学习的基础进行总结面试知识点,工作也指日可待,欢迎一起学习【面试知识,工作可待】系列 《面试知识,工作可待:集合篇》-java集合面试知识大全 《面试知识,工作可待:多线程篇》java多线程并发系列--基础知识点(笔试、面试必备) 《面试知识,工作可待:JVM篇》JVM虚拟机(内存、垃圾回收、性能优化)(笔试、面试必备) .... 1. Java环境 1. 1 Java 和 C++ 的区别? 都是面向对象的语言,都支持封装、继承和多态。 Java 不提供指针来直接访问内存,程序内存更加安全。 Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。 【重要】Java 有自动内存管理机制,不需要程序员手动释放无用内存。 1.2 JDK、JRE、JVM 1.2.1 JDK JDK 即为 Java 开发工具包,包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如: 用于编译 Java 程序的 javac 命令。 用于启动 JVM 运行 Java

2019/8/25 C语言回顾(8)

此生再无相见时 提交于 2019-11-28 13:39:53
一、函数 函数是功能性代码的集合,通常情况下函数需要返回值 1、函数声明 返回值类型 函数名(形参); 不写声明会有警告,或者可以将函数定义拿到main函数上方 2、函数调用 函数名(实参); 3、函数定 { c语句块; return ; } 形参:一定是变量,用来接收实参的值 实参:可以是变量,也可以是常量 二、函数传参 1、赋值传参 把值拷贝一份,对拷贝的值修改不会影响原来的值 2、地址传参 将某一个数据的地址传参,通过地址修改数据会改变原来的数据 一般情况下不要将全局变量作为传参 【1】数组传参 一维数组传参 int a[3] = {1,2,3}; 1、一种形式 int fun(int a[3]) { return 0; } fun(a); 2、第二种形式 int fun(int *p) { return 0; } 二维数组传参 int a[2][3] = {{1,2,3},{4,5,6}}; fun(a); int fun(int a[2][3]) // int (*p)[3] int fun(int (*p)[3]) 指针数组传参 int *a[3] ={}; fun(a); int fun(int *a[]) int fun(int **p) 【2】返回值为指针的函数 注意:返回的地址不可以是一个非静态局部变量的地址,当函数调用结束之后,该地址里面的内容随时会被改变