可以将域定义为 static,每一个类中只有一个这样的域。即使没有对象,这个静态域也存在。它属于类而不属于任何独立的对象,可以直接通过类来访问这个域。
class Employee{ private static int nextId = 1; //静态域 private int id; public Employee(String n, double s) { name = n; salary = s; id = 0; } public void setId() { id = nextId; //通过静态域来设置id nextId++; } }
class Hour { private static int HOURS = 24; public static void main(String[] args) { System.out.println(Hour.HOURS); } }
静态方法时一种不能向对象实施操作的方法,静态方法没有this参数,静态方法可以访问自身类中的静态域。当一个方法是以下两种情况是应该为设置为静态方法.
1.不需要访问对象状态,参数是显示提供的
2.只需要访问类的静态域
//只访问静态域,接employee public static int getNextId() { return nextId; //return static field }
main方法不对任何对象进行操作,所以main方法是静态方法,一个类只能有一个main方法。通常在类中的main方法是作测试用的,只有与文件名相同的类的main方法才是整个程序的入口
形参是实参的一个拷贝,当执行调用后的方法结束后,形参被销毁。
java中允许同一个类中,有多个同名方法的存在,但要求形参列表不一致。通过方法重载我们可以设计一系列作用相似的方法,使它面对不同的输入可以做不同的处理。
java允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。就可以通过可变参数实现。
访问修饰符 返回类型 方法名(数据类型.. 形参名){ ... }
//使用可变参数时,num可以当作数组 public int sum(int... nums){ System.out.println("接收的参数个数="+nums.length; intres=0; for(inti=0;i<nums.length;i++){ res+=nums[i]; } return res; }
在java中使用构造器构造实例,用构造器与new操作符来构造并初始化对象
在java中,java虚拟机给每一个对象分配this用来代表当前对象。this关键字很好的解决了类内部属性和成员方法参数重名的问题。
Public Person(String name, int age){ this.name = name this.age = age }