JAVA/JAVA 기초

JAVA 기초 - 프로그래밍

꿀표 2020. 5. 24. 17:21

* 언어 특징 

1. 운영체제에 독립적(이식성이 높음) -> 운영체제가 바뀌어도 자바는 수정할 필요가 없다.

2. 사용하기 쉬운 언어

 - 다른 언어의 단점 보완(포인터, 메모리 관리)

 - 객체 지향 언어

 - 능률적이고 명확한 코드 작성 가능

3. 자동 메모리 관리(Garbage Collection)

4. 네트워크와 분산환경 지원

5. 멀티쓰래드 지원

6. 동적 로딩 지원

 

* JVM(Java Virtual Machine)

Process 

 1. 자바 코드 작성

 2. 컴파일 

 3. Java Byte code -> 컴퓨터가 읽을 수 있는 코드

 4. JVM를 통해 컴퓨터가 코드를 읽고 실행

 

* 자바 개발 환경

 사용자 / 개발자 입장에 따라 설치하는 범위가 달라짐.

범위 JDK > JRE > JVM

 

Java SE : Java Standard Edition

Java EE : Java Enterprise Edition

Java ME: Java Micro Edition

 

* 코딩 실습

point 

- 초록색 C 마크있는 게 클래스 파일. 이클립스가 컴파일 해준 것이고 JVM가 읽을 파일.

 

HelloWorld.java

package com.kh.first;

// 한줄 주석 : 주로 코드에 대한 설명을 위해 사용
/* 
 * 여러줄 
 * 주석 가능
 * */
public class HelloWorld {
	
	// 프로그램 구동시 제일 먼저 실행되는 메소드 == 메인(실행) 메소드
	public static void main(String[] args) {
		
		// 출력과 관련된 제공되는 메소드(println, print, printf)
		
		//System.out.println(출력하고자하는 값);
		//--> 해당 출력문 출력 후 "한 줄 띄어주는" 역할
		System.out.println("Hi Everyone!!");
		
		//System.out.print(출력하고자하는 값);
		// --> 해당 출력문 출력만 하고 끝(한 줄 띄어쓰기 X)
		System.out.print("안녕\n하세요");
		System.out.print("여러분");
		
	}
	
}

point

- 한줄 주석: // 여러줄 주석: /* */

- 메인 메소드 : 프로그램 구동시 가장 먼저 실행.

- println : 출력 후 한 줄 띄어줌

- \n : 줄 띄어주는 역할

 

A_MethodPrinter.java

package com.kh.first; // 패키지 선언부 : 이 클래스가 어떤 패키지에 속해있는지

public class A_MethodPrinter {

	// 기능 == 메소드
	// 메인 메소드가 없기 때문에 어디선가 호출해주어야 실행가능한 메소드들
	public void methodA() {
		System.out.println("메소드A 츨력문");
		methodB(); //같은클래스내에 있는 메소드는 그냥 이름만 출력해주면 됨.
	}
	
	public void methodB() {
		System.out.println("메소드B 출력문");
		methodC();
	}
	
	public void methodC() {
		System.out.println("메소드C 출력문");
		//methodA();
	}
}

RunA.java

package com.kh.run;

import com.kh.first.A_MethodPrinter;

// 실행을 담당 하는 클래스
public class RunA {

	public static void main(String[] args) {
		
		// 다른 클래스에 있는 메소드를 실행(호출)시키고자 할 때 방법
		// 1) 실행하고자 하는 메소드가 있는 클래쓰를 생성(new) 이라는 걸 해라!
		// [표현법] : 클래스명 사용할 이름 = new 클래스명();
		//A_MethodPrinter a = new A_MethodPrinter();
		// 위쪽 구문 빨간줄 뜨는 이유 : 같은패키지 내의 클래스가 아닌 다른패키지에 있는 클래스를 사용하려고 하기 때문에
		
		// 해결방법1. 해당클래스가 어떤 패키지에 속해있는지 풀클래스명을 사용하는 방법
		//com.kh.first.A_MethodPrinter a = new com.kh.first.A_MethodPrinter();
		
		// 해결방법2.단지 클래스명만으로 생성하긴 하되 이클래스가 어느패키지에 속해있는지 단 한번 선언(import) 해놓기
		A_MethodPrinter a = new A_MethodPrinter();
		
		// 2) 생성 후 해당 메소드 실행(호출)
		// [표현법] 사용할이름.실행시키고자하는메소드명();
		a.methodA();
		//a.methodB();
		//a.methodC();
	}
	
}

point  

- Class 생성 순서 : 1. package 선언 - 2. import 선언 - 3. public class 클래스명 작성

- 다른 패키지에 있는 메소드를 실행(호출) 할 때는 메소드가 있는 클래스를 생성(new)해야함

방법은 풀클래스명을 사용하거나 import 선언 하기.

 

 

*클래스

- 자바에서 모든 코드는 클래스 안에 존재 해야함.

- 서로 관련된 코드들을 그룹으로 나누어 별도의 클래스 구성

- 클래스들이 모여 하나의 Java 애플리케이션 구성

 

*메소드

- 클래스의 기능(동작)에 해당하는 구현 부분.

- 실행 메소드 (메인 메소드) 

Public static void main(String[] args) -> 메인메소드의 고정 선언부

프로그램 실행 시 java.exe에 의해 호출 됨.

모든 클래스가 메인메소드를 가지고 있어야 하는 건 아니지만

Java 애플리케이션에는 반드시 1 개의 메인메소드를 포함한 클래스가 존재해야한다.