void 中文意思是 空的,无效的。
编程=数据结构+算法;
在Java语言中,有8种基本的基本数据类型,当用java这个对象语言去描述现实实体时。基本数据类型就用不到了,要专门来引用 一种数据来描述这个对象。要在计算机里面用java语言引用这个数据的第一步,就是来构建一个专门的内存地址,这个就是“void”。
void是一个不可实例化的占位符类,在计算机内存地址存放一个class类对象。按照数据类型来理解。
public void 呢?
在void前面加载一个public 也就是给了void一个访问权限。我愿称之为“谁可以调用”。
(假设我们现在只构造了一个类)
这个类里面的其它方法就是也可以调用它。
同理:
static :静态。
被声明为 static 的成员,不会让个别对象拥有,而是属于类。是将类名称作为名称空间。
被声明为static的方法,也是将类名称作为名称空间,可以通过类名称与“ . ”运算符来调用static方法:
class Ball{
double radius;
static final double pi=3.141596;
static double toRadians(double angdeg){
return angdeg*(Ball.pi)
}
}
public static呢?
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量。
public class num1 {
public static int i = 1;
public int j = 2;
public static int getNumber(){
return i;
// 这个return返回的是全局变量的i,即前面多创建的i
}
public int getDealNumber(int j){
return j;
// 这个return返回的是所传进来的参数,是(int j)这个东西
}
}
public class num2 {
public static void main(String args[]){
// 想要得到Demo1中的静态的(即全局的)变量i,直接用类名引用就可以了
int i = Demo1.i;
// 但是想要得到Demo1中的实例的变量j,我需要怎么做呢?(此刻牢记java面向对象的思想!)
// 首先我要先new一个Demo1的对象,然后才可以通过new出来的对象得到Demo1中的j
Demo1 demo1 = new Demo1();
int j = demo1.j;
// 同理,java中的static方法和非static方法都是一样的区别
// 下面一行的方法是静态的,我可以直接根据类名调用方法
int ii = Demo1.getNumber();
// 但是想要调用实例的方法,就需要利用前面所new出来的Demo1的对象来调用了
int jj = demo1.getDealNumber(1);
// 所以现在你可以理解上文紫色的定义了么?
}
}
再来看一边:
用public修饰的static成员变量和成员方法本质是全局变量和全局方法,当声明它类的对象市,不生成static变量的副本,而是类的所有实例共享同一个static变量
明白了吗?