类方法和类变量
类方法:
对象是行为(Java中用方法实现)和属性(Java中用成员变量实现)的组合。属性和对象本身有着相同的生命周期。在任何给定的时间点,对象有着特定的状态,状态是类的全部实例,变量
所组合而成的的快照。因为这个原因,有时候实例变量也被成为状态变量。
行为方法操作或者改变对象的属性。换句话说,行为方法可以改变对象的状态。查询方法返回对象状态的某个片段。
把方法设计成:要么改变类对象状态,要么返回信息。不要两件事多做。
有时候您发现某个方法接受参数,只对这些参数进行处理,然后返回一个值。该方法需要操作对象的状态。这样的方法叫做工具方法。有时候,工具方法在别的语言中被称之为函数。工具方法
是全局的,任何客户代码都可以访问他们。
例如createDate方法是DateUtil中唯一的方法,每个DateUtil实例都是这个方法且没有其他不同的操作,是工具方法(即产生时间)所以没有必要创建DateUtil实例。
/**
*
* @param year 年
* @param month 月份
* @param date 月中的天数
* @return 返回一个根据参数year,month,date组成的日期实例
*/
public static Date createDate(int year,int month,int date){
GregorianCalendar calendar = new GregorianCalendar();
calendar.clear();
calendar.set(Calendar.YEAR, year-1900);
calendar.set(Calendar.MONTH, month-1);
calendar.set(Calendar.DAY_OF_MONTH, date);
return calendar.getTime();
}
类变量:
除了从同一个类中的其它类方法中调用某个类方法,从任何其它地方调用这个类方法,都必须在类方法的前面加上类名作为限定。
关于初始化的东西
对于一个普通类,在定义它的时候必须给出初始化的操作,初始化可以在构造函数中完成,可以在类的属性声明是完成。
例如:
public class Student {
private String name;
static final String IN_STATE = "CO";
private String state = ""; //在属性声明时初始化变量。
public Student() {
this.name = ""; //在构造方法中完成初始化。
}
public Student(String name) {
this.name = name;
}
String getName(){
return name;
}
}
如果没有初始化实例对象,有可能出现这个异常:
java.lang.NullPointerException
at.studentinfo.Student.isInState(Student.java:37)
........
对于这个异常,大家一定见得特别多,而往往由于对象实例没有初始化,造成这个异常比比皆是。
我建议对象实例在创建时就给出初始化,而不是通过各种操作完成实例变量的赋值。(对于这个大家可以各抒己见,欢迎拍砖)。
下一次探讨接口,我会继续的 ,多谢大家的支持。
分享到:
相关推荐
JAVA类的方法调用和变量 一、类的分类: 1、普通类 2、抽象类(含有抽象方法的类) 3、静态类(不需要实例化,就可以使用的类) 二、方法的分类: 1、私有方法(只有类的内部才可以访问的方法) 2、保护方法(只有...
Java类变量和方法, 介绍了java中类变量和方法
NULL 博文链接:https://gcgan.iteye.com/blog/615470
C++,C 包含类两个类互相调用彼此的类成员变量和方法,里面介绍了如何在头文件中创建相互的类对象,简单易懂
直接调用类方法量:class::attribute/function,无论是静态/非静态都可以,静态static:声明类成员或方法为 static,就可以不实例化类而直接访问,不能通过一个对象来访问其中的静态成员(静态方法除外),静态成员属于类,不...
C#net反射实现访问类中的私有变量或者方法
在C++中,声明一个类,并且定义一个全局变量,练习全局变量的使用。注意全局变量的使用技巧和方法。
在一个静态方法中,除了局部变量外,能够访问的外部变量也必须是静态的,能够访问的外部方法也必须是静态的,实例变量和实例方法均不能访问。 静态方法通常是 public 的,作为工具类的工具方法出现。 例如: ```...
变量和方法覆盖和隐藏的不同:一个类的实例无法通过使用全局名或者强制自己转换为父类型,以访问父类中被隐藏的方法,然而强制转换子类为父类型之后,可以访问父类中被隐藏的变量。另外静态方法不能覆盖父类的实例...
类变量是类中的静态变量,是用static修饰的变量;实例变量就是类中的成员变量,没有用static修饰的。 类变量是所有对象公用的,实例变量是对象私有的;当一个对象将类变量进行修改后,这个类的其他所有对象访问这个类...
1. 定义Pen类方法 ①定义类的头部 class Pen ②定义类的主体部分,包括变量和方法:变量如colo r,length,price等;方法如Write(),GetPrice()等 ③定义多个构造方法,如Pen(),Pen(参数列表) 2. 定义对象的方法 ①定义...
只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo,如self._FooBar__boo) 3、 __xx__定义的是特列方法。用户控制的命名空间内...
主要介绍了Ruby类实例变量、类实例方法和类变量、类方法的区别,本文探讨一下他们的定义和基本的使用场景,需要的朋友可以参考下
在类中的位置不同 成员变量:在类中方法外 局部变量:在方法内或者方法声明处 在内存中的位置不同 成员变量:在堆内存中 局部变量:在栈内存中 ... 成员变量和局部变量的名称可以一致,方法调用的时候采取就近原则
主要介绍了python类和函数中使用静态变量的方法,实例分析了三种常用的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
9.9_在实例方法中访问实例变量与类变量|高级部分_面向对象|Python3.8入门_&_进阶_&_原生爬虫实战完全解读
(1)编写一个学校类,其中包含成员变量scoreLine(录取分数线)和对变量值进行设置和获取的方法 (2)编写一个学生类,它的成员变量有考生的name(姓名)、id(考号)、intgretResult(综合成绩).它还有获取学生的综合成绩和体育...
java 利用反射获取内部类静态成员变量的值操作.docx
如何使用类中的成员变量和成员方法
# 题目:模仿静态变量的用法。 # 程序分析:构造类,了解类的方法与变量。