public class Main {
public void print(){
System.out.print("이게 실행될까요");
}
public static void main(String[] args){
print();
}
}
이거는 print 메소드는 static 메소드가 아니기 때문에 Main이라는 객체가 생성되어야 실행됨.
public class Main {
public void print(){
System.out.print("이게 실행될까요");
}
public static void main(String[] args){
Main main = new Main();
main.print();
}
}
이렇게 해야 실행되는데 static을 사용하면
public class Main {
public static void print(){
System.out.print("이게 실행될까요");
}
public static void main(String[] args){
print();
}
}
print 메소드는 저렇다고 딱!! 고정해놓은 것. 그래서 객체를 안 만들고 바로 부를 수 있는거임.
public class Class14 {
int a;
static void setA(int b) {
a=b;
}
public static void main(String[] args) {
Class14.setA(10);
}
}
a는 static 변수가 아니므로 main 메소드에 참조될 수 없다.
package ThinkingJAVA;
public class Class15 {
static int a;
static void hello() {
System.out.println("안녕~~~");
}
static void setA(int b) {
a=b;
hello();
}
void printA() {
System.out.println(a);
hello();
}
public static void main(String[] args) {
Class15.setA(1000);
Class15 ob = new Class15();
ob.printA();
}
}
static변수나 static 메소드는 어떤 메소드에서도 사용되어질 수 있다.
non-static변수는 static메소드에 참조될 수 없다.
static변수나 static메소드는 어떤 메소드에서도 사용되어질 수 있다. (static메소드나 non-static메소드나 다 사용가능)
출처: https://gymdev.tistory.com/73, https://jooona.tistory.com/164