韩顺平--面向对象类变量、类方法
来源:互联网 发布:手机nfc软件下载 编辑:程序博客网 时间:2024/05/27 01:25
类变量
.什么是类变量?
类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量.这个从前面的图也可看出来.
.如何定义类变量?
定义语法:
访问修饰符 static 数据类型 变量名;
.如何访问类变量?
类名.类变量名 或者 对象名.类变量名
.类变量一分析问题
请看下述程序一个程序,看看结果是多少?主要考察:对静态变量的理解.
public class Demo3_2 {static int i = 1;static{//这个方法叫“静态区域块“System.out.println("A");//该静态区域块只被执行一次i++;}public Demo3_2(){System.out.println("B");i++;}public static void main(String []args){Demo3_2 t1 = new Demo3_2();System.out.println(t1.i);Demo3_2 t2 = new Demo3_2();System.out.println(t2.i);}}
输出:
A
B
3
B
4
问大家一个问题,我一个对象也不创建对象实例(把Main中方法都注释),static int i = 1;这个静态变量就已经存在代码区了,他已经存好了。
.什么是类方法,为什么有类方法?
类方法是属于所有对象实例的,其形式如下:访问修饰符 static 数据返回类型 方法名(){ }
注意: 类方法中不能访问非静态变量(类变量).
使用: 类名.类方法名 或者 对象名.类方法名
请大家看一个小案例.(统计学费总和)
public class Demo3_2 {
public static void main(String []args){
//创建一个学生
Stu stu1 = new Stu(19,"aa",340);
Stu stu2 = new Stu(18,"bb",340);
System.out.println(Stu.getTotalFee()); //访问Stu对象的getTotalFee静态方法
}
}
//学生类
class Stu{
int age;
String name;
int fee;
static int totalFee;
public Stu(int age,String name, int fee){
this.age = age;
this.name = name;
totalFee+= fee;
}
//返回总学费[加了static,这是一个类方法(静态方法)],这样也节省你栈的开销
//java中规则 :类变量原则上用类方法去访问和操作
public static int getTotalFee(){
//age++; 这样会报错.....
return totalFee;
}
}
输出:
680
注释补充: //age++; 这样会报错,因为"类方法中不能访问非静态变量(类变量)",
//totalFee++就是正确的了
.类变量小结
1.什么时候需要用类变量
案例:定义学生类,统计学生共交多少钱?
用类变量,属于公共的属性
2.类变量与实例变量区别:
.加上static称为类变量或静态变量,否则称为实例变量
.类变量是与类相关的,公共的属性
.实例变量属于每个对象个体的属性
.类变量可以通过类名.类变量名直接访问
如果,设计一个int total表示总人数,我们在
创建一个小孩时,就把total加1,并且total
所有对象共享的就ok了!
画一个小图给大家理解。
- 韩顺平--面向对象类变量、类方法
- 韩顺平 javascript教学视频_学习笔记12_js面向对象编程介绍_类(原型对象)和对象
- 韩顺平 java 第八讲第九讲 this、类变量、类方法、封装
- 韩顺平 java 第五讲第六讲第七讲 类与对象 成员方法 构造方法
- Java面向对象编程(2)-类变量,类方法
- day07 面向对象(构造方法、static类变量)
- 面向对象之定义类、成员变量和方法
- javascript面向对象技术基础(五)(类变量/类方法/实例变量/实例方法)
- 韩顺平php视频笔记62-67 php面向对象
- 面向对象(类,对象,方法)
- oc 面向对象特性(实例成员变量作用域限定符,类变量和类方法)
- java 面向对象基础 类 成员变量和局部变量 成员方法
- 面向对象,静态变量、类与对象、成员变量
- 【IOS 开发】Object - C 面向对象 - 类 , 对象 , 成员变量 , 成员方法
- java面向对象类、方法
- 韩顺平的SqlHelper类
- 五、java面向对象编程(二)——类变量、类方法
- day05面向对象特征,类的变量和方法,封装,构造函数,this关键字
- Edit SAP tables
- 箭头的绘制,这个做过实现,可以很好的绘制出来
- 在mac中怎么显示隐藏文件夹
- UIScrollView的属性总结
- CVTRES : fatal error CVT1100: duplicate resource. type:CURSOR, name:2, language
- 韩顺平--面向对象类变量、类方法
- 代码生成数据库及更新数据库:Entity Framework first code(http://www.cnblogs.com/haogj/archive/2012/02/17/2356537.ht
- DataTable相关操作,筛选,取前N条数据,去重复行,获取指定列数据
- onmouseover特效
- android输入框输入价格,小数点后留两位简单实现
- 初学乍练WPF
- js函数
- 用Windows API进行串口编程的一般步骤及相关函数讲解
- Red Hat 9安装MySQL