본문 바로가기

코딩공부일지/수업 review

자바 - JDK, IDE 설치 / 자바프로그래밍 기본(클래스, 메서드, 실행메서드, 주석, 출력메서드)

* JDK 설치: Amazon Corretto 8
https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.html
*IDE 설치 : Eclipse 2020-3
https://www.eclipse.org/downloads/packages/release/2020-03/r/eclipse-ide-enterprise-java-developers-includes-incubating-components

 

1. 프로그래밍
   1) 프로그램: 컴퓨터가 인식할 수 있는 명령어의 집합
   2) 프로그래밍 = 코딩 : 프로그램 (컴퓨터가 인식할 수 있는 명령어의 집합)을 작성하는 과정
   3) 개발자: 프로그램을 작성하는 사람

 

2. 자바
  1) 자바의 특징

운영체제 독립적 (JVM) - 이식성 높음
사용하기 쉬운 언어 -> 객체지향, 능률적이고 명확한 코드작성 가능
자동 메모리 관리 -> Garbage Collector
네트워크와 분산환경 지원
멀티스레드 지원
동적 로딩 지원

  2) JVM (Java Virtual Machine): 자바 실행을 위한 가상 기계, interpreter
  3) IDE (Intergrated Development Environment):

통합 개발 환경으로 프로그램 개발과 관련된 모든 작업을 할 수 있는 tool
어플리케이션 구축을 위한 소프트웨어

 


3. Eclipse 환경에서 자바 프로그래밍 순서
   * Project (Java Project)생성 -> Class 생성 (src 파일 하단)
   * Class 작성 순서

1) package 선언부: 현재 클래스의 위치를 알려주는 역할
2) import 선언부 : 현재 클래스가 아닌 다른 클래스를 불러올 때
3) class 작성부
1) package
- 한 패키지 내 다수의 클래스 존재 가능.
=> But, 하나의 패키지 내 클래스명 중복 불가
- 모든 클래스가 동일 패키지내 존재시 관리에 불리.
=> 클래스를 용도에 맞게 구분 후 패키지단위로 분류하여 보관할 것
최소 3단계이상의 패키지 생성을 추천
ex) com.javabeginner.studygroup (com. 회사명.프로젝트명/팀명/카테고리명)

2) class

* 메서드

기능, 하나의 기능단위
하나의 클래스 내 여러개 메소드 존재 가능
메소드 호출 : 메소드를 사용하는 것
세미콜론(;): 논리적인 한 문장이 끝날 때 반드시 붙임
메소드명(); 메서드 호출

 

* main 메서드

프로그램 실행의 시작점을 알림, Java application의 시작점,
프로그램당(패키지당) 1개를 가지고있어야 함

< public static void main(String args[]) { } >

메서드를 호출하려면 메인메서드 내부에서 호출하여야함, 스코프를 벗어나면 메소드는 실행불가
package java.study.I; //패키지 선언  -> 패키지 하단 소스파일에 
                      // jdk상 src파일 하단 java->study->I 트리구조 패키지 생성 
                     
                                             
import world.programming.to.welcome;     // 임포트 선언 
 
public class Study {           			// 클래스 선언
    	}


* package - import (다른클래스 내용 불러올 시) -> class 구현 순
* package -> class 구현 (메인메서드)

package java.first.my; //패키지 선언부 : 현재 클래스의 위치를 알려주는 역할 
                

public class HelloWorld { //클래스명 = HelloWorld, 
                          //"{Scope}"-앞단의 영역(예-클래스영역)의 시작과 끝을 의미함
	
	// main method() : 프로그램 실행의 시작점을 알림(Java application의 시작점,프로그램당(패키지당) 1개를 가지고있어야 함 
	public static void main(String args[]) { // 메인메소드 영역시작 -- 메서드를 호출하려면 메인메서드 내부에서 호출하여야함, 스코프를 벗어나면 메소드는 실행불
		
		// *Method : 사전적 정의-기능, 하나의 기능단위
		// 하나의 클래스 내 여러개 메소드 존재 가능
		//  "메소드 호출":메소드를 사용하는 것
		// *세미콜론(;): 논리적인 한 문장이 끝날 때 반드시 붙임
		
		printMyName();
		
		System.out.println("HelloWorld");
		// printMyName(); // 구현메서드 호출
	} // 메인 메서드 영역 끝
	
	
	public static void printMyName() { //printMyName메소드 시작지점
		
		System.out.println("안녕하세요. 제 이름은 Lynn 입니다.");  // 메서드 생성만 하고 호출을 하지 않았음. 메서드구현 - 호출이 아님
		
	} //printMyName메소드 종료지점

} // HelloWorld클래스영역의 끝

 

*외부 class import하여 메소드 호출하기

import문: 해당 패키지(현 패키지와다른 패키지)에 있는 클래스를 사용하는 것

1. 호출하려는 메소드가 존재하는 클래스 타입의 객체를 생성 (매개변수  a)


2. a.메서드(); 호출

 

<class 1>

package java.study.firstday;

public class Iptclss { // 클래스영역 시작점
	
	public void methodA() { //methodA영역 시작
		System.out.println("메소드A호출!");
		
		
	} //methodA영역 끝

	public void methodB() { //methodB영역 시작
		System.out.println("메소드B호출!");
	} //methodB영역 끝

	public void methodC() { //methodC영역 시작
		System.out.println("메소드C호출!");
	}  //methodC영역 끝
	
	
	public void printName() { //printName시작
		System.out.println("안녕하세요. 제 이름은 Lynn 입니다.");
	
	} //printName끝
	
} // 클래스영역 끝

 

<class 2>

package java.study.secondday;

import java.study.firstday.Iptclss;
// import문: 해당 패키지(현 패키지와다른 패키지)에 있는 iptclss를 사용하겠다 

public class Run { 
	public static void main (String[] args) {
	// 	methodA();
	// printName(); 		=> 바로 호출이 불가함. 	
	/* 다른 클래스에 있는 메소드  호출 시
	 *  1. 호출할 메소드가 존재하는 클래스를 생성(new)
	 *    [ 객체 생성법 ]
	 *     "생성하려고하는 클래스명"+"해당 클래스를 대변할 이름(별명)" = new"생성하려고하는 클래스명();
	 *     
	 *      
	 */
		
	Iptclss i = new Iptclss();// 1) i라는 참조변수 타입의 Iptclss객체(import하려는 class타입의 객체) 생성, 
                                     
	i.methodA();  //  2)i 타입. 사용하려는 메소드 호출
	i.methodB();
	i.methodC();
	i.printName();
	// "." : 참조연산자, 직접접근 연산자. 
	}

}