成员变量

C# Struct结构体

混江龙づ霸主 提交于 2019-12-25 14:19:56
C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括数据成员和方法成员。   结构和类的区别:   1、结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。   2、结构类型直接存储成员数据,让其他类的数据位于对中,位于栈中的变量保存的是指向堆中数据对象的引用。   C#中的简单类型,如int、double、bool等都是结构类型。如果需要的话,甚至可以使用结构类型结合运算符运算重载,再为C#语言创建出一种新的值类型来。   由于结构是值类型,并且直接存储数据,因此在一个对象的主要成员为数据且数据量不大的情况下,使用结构会带来更好的性能。    一、声明结构的语法 - struct关键字 public struct AddressBook { //字段、属性、方法、事件 }   对于类而言,两个变量指向同一个对象的情况是存在的,因此对这样两个变量中的任意一个进行操作,起结果必然会影响另外一个,因为它们指向的是同一个对象。   结构是值类型,,直接包含它自己的数据,每个结构都保存自己的一份数据,修改每一个结构的数据都不会对其他结构的数据造成影响。    二、给结构赋值   如果从结构中创建一个对象,并将该对象赋给某个变量,则该变量包含结构的全部值。复制类型为结构的变量时,将同时复制该结构所持有的所有数据。由于结构不是引用类型

面向对象-继承的学习

不羁岁月 提交于 2019-12-24 14:54:42
面向对象的三大特征:封装,继承,多态 继承是多态的前提,没有继承,就没有多态 继承主要解决的问题就是:共性抽取 父类:也叫基类,超类 子类:派生类 继承关系的 特点 : 1.子类可以拥有父类的内容 2.子类还可以拥有自己的专有内容 java语言不支持多继承,是单继承语言,支持多级继承,父类可以有很多子类,但子类只能有一个父类 子父类中成员变量的访问: 子父类的继承关系当中,如果成员变量重名,则创建子类对象时,访问有两种方式: 直接通过子类对象访问成员变量: 等号左边是谁,就优先用谁,没有则向上找 间接通过成员方法访问成员变量: 该方法属于谁,就优先用谁,没有则向上找 区分子类方法中重名的三种: 局部变量: 直接写变量名 本类的成员变量: this.变量名 父类的成员变量: super.变量名 //父类 public class Fu { int num = 100 ; } //子类继承父类 public class Zi extends Fu { //子类成员变量 int num = 200 ; public void methodZi ( ) { //局部变量 int num = 300 ; System . out . println ( num ) ; //300 System . out . println ( this . num ) ; //200 System .

JAVA-基础-继承

喜欢而已 提交于 2019-12-24 10:45:08
继承 在java中,类的继承是指在现有类的基础上去构建一个新的类,这个构建的新的类被称为子类,现有的类为父类,子类会自动拥有父类所有的可继承的属性和方法. 格式和使用: extends 关键字 格式: class 子类 extends 父类 { } 子类在继承父类的时候会自动拥有父类的成员 代码演示: * 定义员工类Employee */ class Employee { String name; // 定义name属性 // 定义员工的工作方法 public void work() { System.out.println("尽心尽力地工作"); } } /* * 定义研发部员工类Developer 继承 员工类Employee */ class Developer extends Employee { // 定义一个打印name的方法 public void printName() { System.out.println("name=" + name); } } * 定义测试类 */ public class Example01 { public static void main(String[] args) { Developer d = new Developer(); // 创建一个研发部员工类对象 d.name = "小明"; // 为该员工类的name属性进行赋值

java中的实例成员与类成员

坚强是说给别人听的谎言 提交于 2019-12-23 16:18:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 首先, 类的目的是抽象出一类事物共有的属性和行为,并用一定的语法格式来描述所抽象出的属性和行为。也即是说,类是一种用于创建具体实例(对象)的数据类型。 类体中包括成员变量的声明和方法的定义,而成员变量又可细分为实例变量和类变量。在什么成员变量时,用关键字 static 给予修饰的称作类变量,否则称作实例变量,同样,方法类型前面不加关键字static修饰的方法是实例方法,否则则是类方法 , 例如: public class Demo{ int x; // 实例变量 static int y;//类变量 float max(float m , float n ){ //实例方法 .... } static float min(float m , float n ){ //类方法 .... } } 3. 明白实例变量和类变量的区别 1) 不同对象的实例变量互不相同: 一个类通过使用new运算符可以创建多个不同的对象,而这些对象将分配不同的成员变量,即分配给不同的对象的实例变量占有不同的内存空间。改变其中一个对象的实例变量不会影响其他的对象的变量。 2) 所有对象共享类变量 当类中存在类变量,当创建多个不同对象时,分配给这些对象的这个类变量占有相同的一处内存。改变其中一个会影响其他, 即说对象共享类变量。 3)

面向对象

本小妞迷上赌 提交于 2019-12-23 10:58:29
面向对象的特点 在面向对象编程时,方法和成员变量都写在具体的对象里面,并对其成员变量和方法有很好的隐蔽性。 对象之间的访问都是通过 接口 进行的。 面向对象的主要特点有4个,分别是继承、多态、抽象和封装。 继承 :在一个已经存在的类的基础之上进行继承,通过继承父类的成员变量和方法,并加入新方法使子类变得更强大。 多态 :多态时指对象有运行期间和编译期间两个状态,多态的使用使得代码有了更多的灵活性和重要性。 抽象 :是指在定义类的时候,确定了该类的一些行为和动作,是不能让外界看到的一些成员变量和方法。 这种提前定义行为和动作的叫抽象。 封装 :是指对一个物品的描述信息是这个物品所特有的,是不能让外界看到的一些成员变量和方法。在JAVA里的成员变量和方法就被封装在类里,需要一些特有的方法访问它们。 来源: CSDN 作者: qq_38533994 链接: https://blog.csdn.net/qq_38533994/article/details/103660339

成员变量的初始化顺序

試著忘記壹切 提交于 2019-12-23 02:21:58
我个人理解 初始化分为五个主要部分(不考虑 编译期常量什么) : 静态代码块 非静态代码块 静态变量初始值 非静态变量初始化值 系统默认初始化变量值 这里说的 变量初始值 是指: int a=3; 这种人为的 不是jvm自动给变量赋初值那种 静态部分: 顺序:静态代码块 >静态变量初始化值 非静态部分: 顺序: 非静态代码块> 非静态变量初始化值 排在最后面的就是 系统默认初始化变量值 example(需要注意下面变量 c 的值的变化): public class Ming extends User { static { System.out.println("我是静态初始化块(只执行一次 就是类加载时)"); a=2; } { System.out.println("我是非静态初始化块(创建类就会执行)"); b=4; c=4; } public static int a=1; public int b=3; public int c; } public class Persistence { public static void main(String[] args) { Ming ming = new Ming(); System.out.println(ming.a); System.out.println(ming.b); System.out.println(ming

指针和引用的区别

怎甘沉沦 提交于 2019-12-22 12:56:56
一、 C++中引用和指针的区别 指针初始化的时候,可以指向一个地址,也可以为空。 引用必须初始化为另一个变量. int ival = 1024; int *pi = &ival; // a pointer int &rval = ival; // a reference 二、 估计很多人在编写C++程序都或多或少的会用到pointer 和 reference这两种东西,但是他们两者到底有什么样的区别和联系呢,相信大多数人是不太了解的,今天我就两者的区别和联系从实际程序的角度来加以区别。 C/C++中的指针其实就是一个变量,和其他类型的变量是一个样子的,它是一个占用四字节的变量(32位机上),它与其他变量的不同之处就在于它的变量值是一个内存地址,指向内存的另外一个地方。reference我的理解就是一个别名,它和linux操作系统上的alias是一个样子的。再者,一个pointer变量可以指向NULL,表示它不指向任何变量地址,但是reference必须在声明的时候就得和一个已经存在的变量相绑定,而且这种绑定不可改变。下面是我写的一段程序来验证pointer与reference的区别和联系的,希望能对大家理解pointer & reference的区别和联系有所帮助: #include "stdafx.h" #include <iostream> using namespace

局部变量和成员变量的区别

余生颓废 提交于 2019-12-22 08:06:06
局部变量和成员变量的区别 位置 局部变量:在方法内部 全局变量:在方法外部定义,直接写在类中。 范围 局部变量:只在方法中才可以使用,出来方法就不能在用。 全局变量:整个类中通用。 默认值 局部变量:没有默认值,如果想要使用,必须手动赋值。 全局变量:没有赋值时,不同类型有不同默认值。 内存位置 局部变量:栈内存 全局变量:堆内存 生命周期 局部变量:随方法进栈而诞生,随方法出栈而消失。 全局变量:随对象创建而诞生,随对象被垃圾回收而消失。 来源: CSDN 作者: zezea 链接: https://blog.csdn.net/zezea/article/details/103646135

阶段1 语言基础+高级_1-2 -面向对象和封装_12成员变量和局部变量的区别

旧城冷巷雨未停 提交于 2019-12-21 02:08:43
成员变量和局部变量有什么不一样 新建包demo03 默认值的问题:这个name没有被赋值输出的话就是null 方法内的局部变量age是int类型的。但是没有赋值输出就会报错。提示:变量age还没有被初始化 方法的参数就是局部变量 在类中的位置不同 重点 成员变量:类中,方法外 局部变量:方法中或者方法声明上(形式参数) 作用范围不一样 重点 成员变量:类中 局部变量:方法中 初始化值的不同 重点 成员变量:有默认值 局部变量:没有默认值。必须先定义,赋值,最后使用 在内存中的位置不同 了解 成员变量:堆内存 局部变量:栈内存 生命周期不同 了解 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 来源: https://www.cnblogs.com/wangjunwei/p/11197370.html

Java-类

夙愿已清 提交于 2019-12-20 20:34:34
Java–类 Java类及类的成员 Java代码世界是由驻多哥不同功能的类构成的。类class描述事物由属性和行为构成。 属性:对应类中的成员变量 行为:对应类中的成员方法 类的语法格式 修饰符 class 类名{ 属性声明; 方法声明 } 说明:修饰符 public:类可以被任意访问;类的正文要用{}括起来 举例 public class Person { public int age ; //声明公有变量age public void showAge ( ) { //声明方法showAge() System . out . println ( age ) ; } } 创建Java自定义类 步骤 定义类(开率修饰符、类名) 编写类的属性(考虑修饰符、属性类型、属性名、初始化值) 编写类的方法(考虑修饰符、返回值类型、方法名、形参等) 对象的创建和使用 使用new+构造器创建一个新的对象; 使用“对象名.对象成员”的方式访问对象成员(包括属性和方法) 举例 public class zoo { public static void main ( String args [ ] ) { Animal xb = new Animal ( ) ; xb . legs = 4 ; System . out . println ( xb . legs ) ; xb . eat ; xb .