码库记事本

码库记事本

java中main函数如何调用外部非static方法

小诸哥 0

使用外部方法时(不管是static还是非static),都要先new一个对象,才能使用该对象的方法。

举例如下:

测试函数(这是错误的):

public class Test {

public static void main(String[] args) {
Employee employee = null;

employee.setName("旺旺"); //有警告,况且这里也执行不下去
employee.setEmail("[email protected]");
employee.setPwd("123333");

System.out.println(employee.getName()+" "+employee.getEmail()+" "+employee.getPwd());
}
}

虽然,把Employee类中的方法都写成static,main函数就可以调用了。但都知道,static类型在程序执行前,系统会为其分配固定的内存。如果所有方法都这样做,系统不崩溃了。

正确的做法:

使用外部非static方法时,要先new一个对象,才能使用该对象的方法。

public class Test {

public static void main(String[] args) {
Employee employee = new Employee();

employee.setName("旺旺");
employee.setEmail("[email protected]");
employee.setPwd("123333");

System.out.println(employee.getName()+" "+employee.getEmail()+" "+employee.getPwd());
}
}
public class Employee{
private Integer id;
private String name;
private String pwd;
private String email;

public Employee() {

}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}

补充知识:java中static方法与非static方法之间的调用关系

java中static方法与非static方法之间的调用关系,

有以下四种:

1、非static方法调用非static方法,直接通过方法名调用

2、static方法调用static方法,直接通过方法名调用

3、非static方法调用static方法,直接通过方法名调用

4、static方法调用非static方法,通过类对象来调用

示例如下:

package com.chendi.objectNav;
public class MainClass {
public static void main(String[] args){
Circle circle = new Circle();
Line line = new Line();
//静态方法调用静态方法
doSomeThing(circle);
doSomeThing(line);
//静态方法调用非静态方法
MainClass mainClass = new MainClass();
mainClass.noStatic();
}
public void noStatic(){
//非静态方法调用非静态方法
test1();
//非静态方法调用静态方法
test2();
}
public void test1(){
System.out.print("1");
}
public static void test2(){
System.out.print("2");
}
public static void doSomeThing(Shape shape){
shape.erase();
}
}

标签: static main函数 static方法