成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别

简单来说:
类体的定义包括成员变量的定义和方法的定义。 
1、成员变量包括实例变量和类变量;而成员方法包括实例方法、类方法,当然还有一种特
殊的构造方法。  
2、类变量、类方法就是类中的变量、方法,必须是静态的,要加static;故其又称静态变量

、静态方法。
3、成员变量、成员方法是对象或实例中的变量、方法,不加static;  
类变量:静态域,静态字段,或叫静态变量,它属于该类所有实例共有的属性,在内存中只
有一个地方存储这个变量。而且所有的实例都可以修改这个类变量的值(前提是这个类变量没

有被final修饰,否则是常量了),而且访问类变量的时候不用实例,直接用类就可以了。
 
类方法:和类变量一样,可以不用实例,直接用类就可以调用类方法。 
实例变量:实例域,实例字段,或叫成员变量。 
实例方法:或叫成员方法,必须先有实例,然后才能通过实例调用该实例方法。 
使用方法:类方法可以直接调用类变量和类方法              
          类方法不可以直接调用实例变量和实例方法               
          类方法中没有this,因为没有实例,this不知道调用哪个实例             
          类方法可以从类里面直接访问类成员             
          实例方法可以调用类方法,访问类变量,但是不提倡这样做,会把类方法和类变
量混淆成实例方法和实例变量

时间: 2024-08-01 23:37:34

成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别的相关文章

java局部/成员/静态/实例变量

局部变量和成员变量主要是他们作用域的区别成员变量个是类内部:局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置).另外,成员变量可以不显式初始化,它们可以由系统设定默认值:局部变量没有默认值,所以必须设定初始赋值. java类的成员变量有俩种:一种是被static关键字修饰的变量,叫类变量或者静态变量:另一种没有static修饰,为实例变量. 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加. 在程序运行时的区别:实例变量属于某个对象的

子父类中码静态代块 构造代码块. 代码块 构造函数 成员变量 实例变量 执行顺序

刚开始接触时,很不容易分清楚 创建子类或者多态的情况: /* 创建子类的情况: 1.父类静态代码块 2.子类静态代码块 3.父类构造块 /实例变量(new 创建的变量成员)//谁在前执行谁,执行完再执行构造函数 4.父类构造函数//父类构造函数有方法,如果方法子类有就执行子类的方法,没有才再执行父类方法.//如果子类有父类没有会报错!//父类私有该方法就执行父类的方法 5.子类构造块/实例变量//谁在前执行谁,执行完再执行构造函数 6.子类构造函数 7.子类普通方法//调用成员变量,看子类的值,

3.ruby语法基础,全部变量,实例变量,类变量,局部变量的使用和注意的要点

1.ruby的全局变量的概念和Java的全局变量的概念不同, ruby的全局变量是以$符号开头的,如果给全局变量的初始化值为nil会出现警告. 赋值给全局变量,这是ruby不推荐的,这样会使程序变得很难理解. 举例: #!/usr/bin/ruby $global_variable = 10 class Class1 def print_global puts "Global variable in Class1 is #$global_variable" end end class

iOS中的成员变量,实例变量,属性变量

在ios第一版中: 我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: 注意:(这个是以前的用法) @interface MyViewController :UIViewController { UIButton *myButton; } @property (nonatomic, retain) UIButton *myButton; @end 在现在iOS版本中: 苹果将默认编译器从GCC转换为LLVM(low leve

Java静态变量&实例变量&静态方法

首先语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加. 在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量.静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了.总之,实例变量必须创建对象后才可以通过这个对象来使用 1 package staticVar; 2 3 public class svar { 4

JAVA类与对象---实例变量与类变量的区别,实例方法和类方法的区别

实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被一个方法.构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息: 实例变量对于类中的方法.构造方法或者语句块是可见的.一般情况下应该把实例变量设为私有.通过使用访问修饰符可以使实例变量对子类可见 实例变量具有默认值.数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默

JAVA类与对象(六)------实例变量与类变量的区别,实例方法和类方法的区别

实例变量 实例变量声明在一个类中,但在方法.构造方法和语句块之外: 当一个对象被实例化之后,每个实例变量的值就跟着确定: 实例变量在对象创建的时候创建,在对象被销毁的时候销毁: 实例变量的值应该至少被一个方法.构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息: 实例变量对于类中的方法.构造方法或者语句块是可见的.一般情况下应该把实例变量设为私有.通过使用访问修饰符可以使实例变量对子类可见: 实例变量具有默认值.数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的

类变量和实例变量及其初始化

0.基本概念 类变量是指java类中的static数据成员,实例变量则是指java类中的非static数据成员.由于类变量不需要创建一个对象即可访问,而实例变量则必须与一个具体的对象对应,因此类变量和实例变量的初始化时机是不同的.本文主要关注以下3个问题: (1)什么时候初始化类变量?什么时候初始化实例变量? (2)什么时候会同时初始化类变量和实例变量? (3)在(1).(2)情形下各个类变量和实例变量的初始化顺序? 1.类变量初始化 根据有无被final关键字修饰,类变量的初始化时机不同.被f

JAVA中 成员变量和和实例变量区别

java语言支持的变量类型 类变量:独立于方法之外的变量,用 static 修饰. 局部变量:类的方法中的变量. 实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰. public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 public void method(){ int i =0; // 局部变量 }  } JAVA的局部变量 局部变量声明在

私有属性,私有方法,类变量,实例变量,单下划线,双下划线

1.私有属性__age,不能通过实例对象直接调用,而是通过一个方法来调用 class Dog: def __init__(self, new_age): self.__age = new_age def get_age(self): return self.__age wang_cai = Dog(1) result = wang_cai.get_age() print(result) 2.私有方法,通过一个共有方法来调用 class Dog(object):   def __init__(se