자바 소스코드 기본구조
*자바 소스코드는 아래와 같은 구조를 가지고 있다.
*자바로 프로그래밍 할 때에는 위의 예제와 같은 구조로 작성을 한다.
*클래스들을 묶어주는 패키지를 설정하고, 다른 패키지의 클래스를 참조할 경우
import를 해준다.
*class내부에는 멤버변수와 메소드가 들어간다.
-------------------------------------------------------------------------------
Package 패키지명;
import 다른패키지에있는클래스명;
public class 클래스명{
자료형 변수명;
public static void main(String[] args){
시작될 기능구현 코드;
}
public 반환형 메소드명(매개변수){
메소드 기능구현 코드;
}
}
-------------------------------------------------------------------------------
자바 프로그램의 실행 순서
* 프로그램의 실행 순서는 코드의 위부터 아래로 순차적으로 실행된다.
* 특정한 메소드를 사용하지 않으면 다시 위로 올라가는 경우는 없다.
-------------------------------------------------------------------------------
RunOrder.java
public class RunOrder{
public static void main(String[] args){
System.out.println("Hello");
System.out.println("java");
System.out.println("Welcome to Java World");
}
}
-------------------------------------------------------------------------------
*******************************************************************************
Hello
Java
Welcome to Java World
*******************************************************************************
-------------------------------------------------------------------------------
RunOrderErr.java
public class RunOrderErr{
public static void main(String[] args){
System.out.println(name);
String name = "유병승";
}
}
-------------------------------------------------------------------------------
*******************************************************************************
[오류메세지]
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
name cannot be resolved to a variable
=> System.out.println()의 name이라는 변수를 찾을 수 없어서 발생하는 오류.
*******************************************************************************
자바 프로그램 실행범위
* 실행범위는 코드상에서 중괄호'{}'로 표시한다.
* 메소드, 클래스, 조건문, 반복문 등의 실행범위를 정할때 사용한다.
* 일반적으로는, 해당 중괄호 영역의 소스코드만 사용 가능하다.
-------------------------------------------------------------------------------
RunScope.java
public class RunScope{
public static void main(String[] args){
String name = "홍길동";
System.out.println(name);
print();
}
public void print(){
System.out.println(name);
}
}
-------------------------------------------------------------------------------
*******************************************************************************
[오류메세지]
Exception in thread "main" 홍길동
java.lang.Error: Unresolved compilation problem:
name cannot be resolved to a variable
=> main()의 실행범위안에 있는 name이라는 변수는 print()에서는 사용할 수 없다.
*******************************************************************************
* 해결방법으로는, 각각의 메소드에 name이라는 변수를 각각 지정해주면 된다.
-------------------------------------------------------------------------------
RunScope.java
public class RunScope{
public static void main(String[] args){
String name = "유병승";
System.out.println(name);
print();
}
public void print(){
String name = "김자바";
System.out.println(name);
}
}
-------------------------------------------------------------------------------
*******************************************************************************
유병승
김자바
*******************************************************************************
* 같은 name이라는 변수여도, 각자의 실행범위에 있는 출력문을 실행하기 때문에 다른 결과가 나온다.