Java面向对象编程(2)-类变量,类方法
来源:互联网 发布:现在还能翻墙的软件 编辑:程序博客网 时间:2024/05/20 21:20
Java面向对象编程(2)-类变量,类方法
问题:一群小孩子玩堆雪人,不是有新的小孩子加入,请问如何知道现在有多少人在玩?请使用面向对象的思想,编写程序解决。
一般做法
publicclassDemo9_17 {
publicstaticvoid main(String[]args)
{
//一般的做法
inttotal= 0;
Childch1 =newChild(3,"小妞");
ch1.joinGame();
total++;
Childch2 =newChild(4,"小小");
ch2.joinGame();
total++;
}
}
//定义一个小孩的类
classChild
{
intage;
String name;
publicChild(intage,Stringname)
{
this.age =age;
this.name =name;
}
publicvoidjoinGame()
{
System.out.println("有一个小孩加入");
}
}
如果,设计一个int total 表示总数,我们在创建一个小孩时,就把total加1,并且total是所有对象共享的。
publicclassDemo9_17 {
publicstaticvoid main(String[]args)
{
Child ch1 = new Child(3,"小妞");
ch1.joinGame();
Child ch2 = new Child(4,"小小");
ch2.joinGame();
System.out.println("共有" +ch2.total +"人");
//随便用哪个对象访问这个变量,都是可以的。
System.out.println("共有" +ch1.total +"人");
}
}
//定义一个小孩的类
class Child
{
intage;
String name;
//total是静态变量,因此他可以被任何对象访问
staticinttotal= 0;
publicChild(intage,Stringname)
{
this.age =age;
this.name =name;
}
publicvoidjoinGame()
{
total++;
System.out.println("有一个小孩加入");
}
}
什么是类变量?
是该类的所有对象共享的变量,任何一个该类的对象都是可以访问的,而且取出来的值是一
样的。
同样的任何一个该类的对象去修改它时,修改的也是同一个变量。
如何定义一个类变量
定义语法:
访问修饰符 static 数据类型变量名
如何访问类变量
类名.类变量名或者 对象名.类变量名
对静态变量的理解
publicclassDemo9_17_1 {
//静态变量
staticinti = 1;
//静态代码区,只会执行一次
static
{
System.out.println("执行静态代码");
i++;
}
//构造方法还是会执行。
publicDemo9_17_1()
{
System.out.println("执行方法");
i++;
}
publicstaticvoid main(String[]args)
{
Demo9_17_1t1 =new Demo9_17_1();
System.out.println(t1.i);
Demo9_17_1t2 =new Demo9_17_1();
System.out.println(t2.i);
}
}
类方法
什么是类方法?为什么有类方法
类方法是属于所有对象的实例,其形式如下:
访问修饰符 static 数据返回类型方法名()
注意:类方法中不能访问非静态变量(类变量)
使用:类名.类方法名或者 对象名.类方法名
案例:统计学费的和
publicclassDemo9_17_1 {
publicstaticvoid main(String[]args)
{
Stustu1=newStu(23,"小小",240);
System.out.println(stu1.Gettotal());
Stustu2=newStu(23,"大大",245);
System.out.println(stu2.Gettotal());
}
}
class Stu
{
intage;
String name;
intfee;
//所有学生共享变量
staticinttotalFee= 0;
publicStu(intage,Stringname,intfee)
{
this.age=age;
this.name=name;
totalFee +=fee;
}
public staticint Gettotal()
{
returntotalFee;
}
}
每个类调用方法时,都会占用内存,所以加static,可以所有的对象都访问,节省空间
规则:静态变量(类变量)。原则上用类方法去访问或是去操作。
类变量总结
1, 什么时候需要用类变量
2, 类变量和实例变量的区别
加上static称为类变量或者是静态变量,否则称为实例变量
类变量是与类相关的,公共的属性
实例变量属于每个对象个体的属性
类变量可以通过类名.类变量名直接访问。
类方法总结
1, 什么时候需要用类方法
2, 类方法属于类相关的,公共的方法。
实例方法属于每个对象个体的方法
类方法可以通过类名.类方法直接访问。
- Java面向对象编程(2)-类变量,类方法
- Java笔记 第四章(2)Java面向对象编程基础 第二部分(类的成员变量和方法)
- 五、java面向对象编程(二)——类变量、类方法
- [疯狂Java]面向对象:final修饰符(修饰变量、方法、类)
- java之面向对象编程1:类、对象、成员变量、成员函数
- java 面向对象基础 类 成员变量和局部变量 成员方法
- java面向对象类、方法
- [TwistedFate]面向对象编程、类和对象、实例变量操作
- java -面向对象编程-类与对象
- java笔记 第四章 Java面向对象编程基础第一部分(类和main方法)
- 十一、java面向对象编程(类、对象)
- Java面向对象/类/对象/方法
- java面向对象(类、对象、属性、方法、构造、this)
- PHP面向对象的编程(类成员方法用法)
- Java面向对象-final类和final方法、final变量(常量)
- python面向对象编程(2)—— 实例属性,类属性,类方法,静态方法
- java-面向对象编程-抽象类
- JAVA基础再回首(四)——面向对象思想、类与对象、成员/局部变量、匿名对象、封装、private、this、构造方法
- 计算机网络复习——概述
- PAT(A) - 1052. Linked List Sorting (25)
- 详谈socket请求Web服务器过程
- Eigen: C++开源矩阵计算工具——Eigen的简单用法
- Android异步机制AsyncTask的学习
- Java面向对象编程(2)-类变量,类方法
- python核心编程学习笔记-2016-09-17-01-数据库编程(一)
- 洛谷 P1305 新二叉树
- dasdasdas
- vb.net DirectoryNotFoundException UnauthorizedAccessException FileSystem.GetFiles获取文件 异常 权限解决
- 关于冷备份与热备份的对比
- Xcode8系列问题
- dfasfasd
- 实际应用中Service不被Kill掉的方法