成员变量

类变量、成员变量、局部变量

可紊 提交于 2019-11-28 13:02:11
Java的中共有三种变量,分别是类变量,成员变量和局部变量。他们分别存放在JVM的方法区,堆内存和栈内存中。 / ** * @author win * / public class Variables { / ** *类变量 * / private static int a; / ** *成员变量 * / private int b; / ** *局部变量 * @param c * / public void test( int c){ int d; } } 来源: https://www.cnblogs.com/lujiahua/p/11408084.html

对于成员变量和方法的作用域

此生再无相见时 提交于 2019-11-28 13:01:08
对于成员变量和方法的作用域,公共,保护,私有以及不写之间的区别。 public:表明该成员变量或者方法是对所有类或者对象都是可见的,所有类或者对象都可以直接访问 私人:表明该成员变量或者方法是私有的,只有当前类对其具有访问权限,除此之外其他类或者对象都没有访问权限子类也没有访问权限。 保护:表明成员变量或者方法对类自身,与同在一个包中的其他类可见,其他包下的类不可访问,除非是他的子类 默认:表明该成员变量或者方法只有自己和其位于同一个包的内可见,其他包内的类不能访问,即便是它的子类 来源: https://www.cnblogs.com/lujiahua/p/11408098.html

子类可以继承父类的一切方法,成员变量,甚至是私有的,但是却不能够访问这些私有的成员变量和方法

断了今生、忘了曾经 提交于 2019-11-28 10:17:14
1、关于私有成员变量 无论父类中的成员变量是私有的、共有的、还是其它类型的,子类都会拥有父类中的这些成员变量。但是父类中的私有成员变量,无法在子类中直接访问,必须通过从父类中继承得到的protected、public方法(如getter、setter方法)来访问。 2、关于静态成员变量 无论父类中的成员变量是静态的、还是非静态的,子类都会拥有父类中的这些成员变量。 3、关于被子类覆盖的成员变量 无论父类中的成员变量是否被子类覆盖,子类都会拥有父类中的这些成员变量。 来源: https://www.cnblogs.com/shoose17/p/11404495.html

c++ 之 内存模型:对象篇

江枫思渺然 提交于 2019-11-28 10:15:15
一、对象 1.类对象所占用的空间 (1)类的普通成员函数不占用类对象的成员空间 (2)一个类对象至少要占用1字节的内存空间 (3)类的普通成员变量占用类对象的空间(每一个类的对象拥有属于自己的成员变量) (4)类的普通成员函数虽然写在类的定义中,但普通成员函数不会占用类对象的内存空间 (5)所有类的对象公用一份成员函数 来源: https://www.cnblogs.com/sxgloverr1314/p/11404440.html

JavaDay11 static关键字

五迷三道 提交于 2019-11-28 08:22:46
tags : java基础 flag: blue @toc JavaDay11 static关键字 一、static关键字的引入 生活情况: 饮水机为例,通常是放在一个公共的环境中,大家共同使用,不会说每个人入学发一个饮水机。 如果每一个人都有一个饮水机,过多电线,过多的水管,占用了大量的空间 代码中的问题: 发现在代码中,存在某一些成员变量的数值是一样的,大量重复,在每一个对象中都有存在,例如: 当前代码中的国家,都是中国。这样会占用过多的内存资源,甚至于硬盘资源。 期望: 把国家中国属性放到一个共享的区域里,然后让每一个对象使用就好 解决问题: 使用static关键字 二、static修饰成员变量 (一)static关键字的使用: 【重点】 如果使用static修饰的成员变量,这些成员变量称之为【静态成员变量】,这个 【静态成员变量】实际存放的内存空间在【内存数据区】,和当前【类对象内存】没有任何关系 。也就是说,这个【静态成员变量】使用内存空间不再【堆区】对象内存中 用static修饰的成员变量,这个【静态成员变量】可以提供给多个类对象使用 。 什么时候用static,真正意义上存在大量重复,并且存在一定共享基础的数据,这种情况下,可以使用static修饰 例如:country属性就适合用static修饰,但是name属性就不适合 小问题: 发现通过类对象来调用【静态成员变量

面向对象

前提是你 提交于 2019-11-28 08:14:16
1:成员变量和局部变量的区别 (1)在类中的位置不同 成员变量:类中方法外 局部变量:方法定义中或者方法声明上 (2)在内存中的位置不同 成员变量:在堆中 局部变量:在栈中 (3)生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 (4)初始化值不同 成员变量:有默认值 局部变量:没有默认值,必须定义,赋值,然后才能使用 注意事项: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。 2:类作为形式参数的问题? (1)如果你看到一个方法需要的参数是一个类名,就应该知道这里实际需要的是一个具体的对象。 (2)形式参数的问题: 基本类型:形式参数的改变不影响实际参数 引用类型:形式参数的改变直接影响实际参数 3:匿名对象 (1)没有名字的对象 (2)应用场景 A:调用方法,仅仅只调用一次的时候。仅仅只调用一次的时候。 注意:调用多次的时候,不适合。 那么,这种匿名调用有什么好处吗? 有,匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。 b:可以作为实际参数传递。 4:封装 (1)隐藏实现细节,提供公共的访问方式 (2)好处: A:隐藏对象的属性和实现细节,提供公共的访问方式 B:提高代码的复用性 C:提高代码的安全性 (3)设计原则 把不想让外界知道的实现细节给隐藏起来,提供公共的访问方式

C++软件开发面试题总结

落爺英雄遲暮 提交于 2019-11-28 07:34:53
  面试题有难有易,不能因为容易,我们就轻视,更不能因为难,我们就放弃。我们面对高薪就业的态度永远不变,那就是坚持、坚持、再坚持。出现问题,找原因;遇到困难,想办法。我们一直坚信只有在坚持中才能看到希望,而不是看到希望才去坚持。   人生没有如果,只有结果和后果。既然选择了,就不后悔。年轻就是资本,年轻就要吃苦,就要历练。就要学会在坚持中成长。如此感慨,至深的心得体会,绝对的经验之谈。 1、 Static有什么用途? (1)函数体内static变量的作用范围是该函数体,该变量的内存只被分配一次,因此它的值在下次调用时不变; (2)模块内的static全局变量同样只能在该模块内的函数访问和调用,不能被模块外的其他函数访问; (3)在类中的static成员变量属于整个类所有,对类的所有对象只有一份拷贝,这个函数不接受this指针,因为只能范围类的static成员函数。 2、 const (1)不管在函数声明修饰形参、还是修饰类的成员变量,表示该成员变量不能被改变,而且通常需要进行初始化,因为之后不能再改变; (2)对于指针来说,可以修饰指针所指向的变量(在*左边,即指针指向内容为常量),也可以指定指针本身为const(在*右边,指针本身是常量),或者两者同时指定为const(都是常量)。 3、 this指针 (1)this指针本质是一个函数参数,只是编译期隐藏起形式的,语法层面上的参数

Java面向对象(二)_封装、static、继承、多态、抽象、接口

非 Y 不嫁゛ 提交于 2019-11-28 07:23:57
备注:如有错误请给予联系 1. 面向对象的封装特性 在面向对象程式设计方法中,封装(英语: Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据,必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。 封装的优点 1. 良好的封装能够减少耦合。 2. 类内部的结构可以自由修改。 3. 可以对成员变量进行更精确的控制。 4. 隐藏信息,实现细节。 实现 Java封装的步骤 1. 修改属性的可见性来限制对属性的访问(一般限制为private),例如: 1 public class Person { 2 private String name; 3 private int age; 4 } 这段代码中,将 name 和 age 属性设置为私有的,只能本类才能访问, 其他类都访问不了,如此就对信息进行了隐藏。 2. 对每个值属性提供对外的公共方法访问,也就是创建一对赋取值方法,用于对私有属性的访问,例如: 1 public class Person{ 2 private String name; 3 private int age;

C++基础学习4

旧巷老猫 提交于 2019-11-28 07:20:48
7自定义数据类型 7.1结构体类型 用户可以自己声明的类型还有结构体(structure)类型、 共用体(union)类型、 枚举(enumeration)类型、 类(class )类型等, 这些统称为用户自定义类型 。 结构体是 将不同类型的数据组合成一个有机的整体 ,这些组合在一个整体中的数据是互相联系的。 struct Student//声明一个结构体类型Student { int num;//包括一个整型变量num char name[20];//包括一个字符数组name,可以容纳20个字符 char sex;//包括一个字符变量sex int age;//包括一个整型变量age float score;//包括一个单精度型变量 char addr[30];//包括一个字符数组addr,可以容纳30个字符 } ;//最后有一个分号 声明结构体类型的位置一般在文件的开头, 在所有函数(包括main函数)之前。 定义: (1) 先声明结构体类型再定义变量名 。 Student student1, student2; (2) 在声明类型的同时定义变量 (3) 直接定义结构体类型变量 结构体变量的初始化 ,可以在定义时指定初始值。 结构体变量的引用 (1) 可以将一个结构体变量的值赋给另一个具有相同结构的结构体变 量。 student1= student2; (2)

C++基础学习5

有些话、适合烂在心里 提交于 2019-11-28 07:12:18
9类和对象进一步 9.1构造函数 如果一个类中所有的成员都是公用的,则可以在定义对象时对数据成员进行初始化。 但是,如果数据成员是私有的,或者类中有private或protected的成员, 就不能用这种方法初始化。 class Time {public : //声明为公用成员 hour; minute; sec; }; Time t1={14,56,30}; //将t1初始化为14:56:30 构造函数的作用 构造函数的名字必须与类名同名,构造函数没有返回值,因此也不需要在定义构造函数时声明类型, 以便编译系统能识别它并把它作为构造函数处理。 在类内定义构造函数,也可以只在类内对构造函数进行声明而在类外定义构造函数。 构造函数不需用户调用,也不能被用户调用。 带参数的构造函数 构造函数首部的一般格式为构造函数名(类型 1 形参1,类型2 形参2, …) 定义对象的一般格式为 类名 对象名(实参1,实参2, …); #include <iostream> using namespace std; class Box {public : Box(int,int,int);//形参由定义对象时给出 int volume( ); private : int height; int width; int length; }; //声明带参数的构造函数//声明计算体积的函数 Box::Box