java面向对象进阶(成员变量)

成员变量的概述

在Java中,变量可以分为成员变量和局部变量,成员变量是在类范围内定义的变量,局部变量是在方法中定义的变量

Java中的成员变量分为类属性和实例属性两种,定义属性时没有static修饰符修饰的就是实例属性。其中,类属性从类被加载开始存在,直到系统完全销毁该类,类属性的作用域与该类的生命周期相同。而实例属性则从类的实例被创建起开始存在,直到系统销毁该实例,实例属性的作用域与其对应的实例的生命周期相同。

成员变量的使用

成员变量在使用之前,需要先进行声明,声明成员变量是在类的内部、方法的外部定义的变量,成员变量分为多例变量和类变量。实例变量作用域是当前所属实例的范围,类的成员变量的作用域是整个类范围。

成员变量的声明要给出变量名、变量类型以及其他特性,其语法如下:

[< 修饰符>] [static] [final]< 变量类型><变量名>

(1) static: 表示一个类的成员变量,即静态成员变量。

(2) final: 表示是一个常量。

建Hero应用类,在该类中定义name和age实例变量, 验证实例变量的作用域

public class Hero {

String name;//英雄名字

int age;//英雄年龄

public static void mainlStringll args){

//创建英雄对象hero1

Hero hero1 = new Hero();

hero1.name="德鲁伊";//为hero1的实例属性name赋值

hero1. age=45;//为hero1的实例属性age赋值


//创建英雄对象hero2

Hero hero2 = new Hero();

System.out.printin("英雄hero1的名:" + hero1 name+"\t +"年龄:"+hero1.age);
System.out.printin("英雄hero2的名字: +hero2 name+"\t"+"年龄:"+hero2.age);

在Java中还有一类成员变量, 称为类变量或静态成员变量,类成员变量是使用static关键字修饰的变量,一个类成员变量由该类的所有实例对象共享,而不是任何-个类实例的变量。在编译时,类成员变量保存在类声明的存储单元中,同时在访问类成员变量时,无须事先实例化其所在的类,对于类的任何一个具体对象而言,类成员变量被保存在该类内存区的公共存储单元中,而不是保存在某个对象的内存区域中,因此任何-个类对象在访问它时 都可获得相同的值。

访问一个类成员变量,可以通过“类名+点操作符+变量名”的形式来访问。成员变量的使用

public class Hero {

static String camp; // 英雄所在阵营如天灾方、近卫方,类变量

String name;//英雄名字,实例变量

public static void main(String[] args){

Hero hero1 = new Hero();//创建实例

Hero hero2 = new Hero();//创建实例

Hero.camp = "近卫方";//为类成员变量赋值

hero1.name = "德鲁伊";//为实例变量赋值

hero2.name = " 召唤师";//为实例变量赋值

System. out printIn("hero1英雄名字:"+hero1.name+"\t'+"所在阵营:"+hero1 .camp);
System. out printin("hero2英雄名字:"thero2 name+"\t'+"所在阵营:"+hero2 .camp); 
//hero2不愿与hero1同一个阵营,hero2 对象擅自修改类变量值

hero2. camp="天灾方://hero2 对象擅自修改类变量值

System out printin(---------hero2修改camp属性后-------------");

System. out println("hero1英雄名字:"+hero1 name+"\t+所在阵营:"+herol.camp);
System. out pintnln ("hero2英雄名字:"+hero2 name+"\t+所在阵营:"+hero2.camp);
}
}

 

你可能感兴趣的:(java,面向对象编程,类,class)