[IT국비지원] 개발자 교육 11일 차 : JAVA(2023.08.09)fit.구디아카데미,김지훈 강사님

Nicole Gold·2023년 8월 8일
0

K-digital training

목록 보기
12/60

이하 구디아카데미 김지훈 강사님의 수업자료와 강의 내용 정리, 실습한 내용을 정리함!

다운로드 step 1

선행 : sts download
https://spring.io/tools
하단의 Spring Tool Suite 3 wiki 링크
버전 Spring Tool Suite 3.9.18
window 환경으로 다운받기

다운로드 step 2

이클립스 다운로드 검색 > JDK 다운로드 > 릴리즈 아카이브 > 11-LTS 버전
window 64(https://adoptium.net/download/) > 다운로드 > 경로 확인 > cmd 검색 > 명령어 java -version > openjdk version "11.0.20" 2023-07-18

다운로드 step 3

Spring Tool Suite 3.9.18 압축 풀기 > sts 번들에서 sts-3.9.18.RELEASE 만 꺼내고 나머지 지우기 > sts-3.9.18.RELEASE 안의 나뭇잎 모양 더블클릭 > 팝업 끄기 > 나뭇잎 바탕화면에 바로가기 만들기

다운로드 step 4

열기 > 메인 화면 > window > Preferences > General >Workspace >
하단 Text file encoding > Other > UTF-8 > Apply
General > Appearance > colors and fonts > basic > Text Font > vardana 14 > Apply 완료

Chapter01 > 피니시 > 돈 크리에이트 > 오픈 퍼스펙시브

src > new > class > Define(class 만들 때 무조건 대문자) > public static void main 체크(안 만들면 안 돌아감) >

자바의 법칙

클래스는 무조건 첫 글자를 대문자로 한다.
syso (ctrl+space) = system.out.println()

JAVA

java 의 특징

  • 객체 지향 언어(Object Orient Language)이다.
  • 이식성이 높다.(한 번의 컴파일로 window, Linux, IOS 모두 실행된다.
  • OPEN SOURSE 라이브러리가 풍부하다.

OOP란 무엇인가?

  • 소프트웨어 위기(software Crisis) :H/W의 생산성과 발전 속도를 S/W가 따라가지 못한다.
  • 자동차 공장에서 자동차를 조립하듯이 프로그램을 만드는 건 어떨까?
  • 누군가가 만들어 공개한 내용을 가져다 쓰면 개발 속도가 빨라지지 않을까?
  • 그래서 만들어진 것이 바로 객체지향 프로그래밍(Object Orient Programming) 언어이다.
  • JAVA 는 "남의 것을 사용하기 편하게" 하기 위한 관점으로 바라봐야 한다.

JAVA는 객체 지향 언어이다.
객체 지향 언어란 남의 소스를 부품처럼 사용하기 위해 생긴 개념이다.
**JAVA 는 남의 소스를 편하게 쓸 수 있도록 설계되어 있다.

활용 프로그램

  • JDK(Java Development Kit) 는 Java 개발과 Compile 을 위한 도구
  • Eclipse 는 JAVA 개발을 하기 위한 환경이 갖춰져 있는 도구
  • IDE 는 Eclopse 뿐 아니라 Intelli=J, NetBeans 등이 있다.

Variable(변수)

  • 변수란 무언가를 담는 컵
  • 변수의 이름은 각 컵을 구분하거나 가져올 수 있도록 붙이는 라벨🥛
  • 변수의 타입 : 담는 용도에 따라 컵의 종류와 크기와 모양이 달라진다.
  • 때문에 각 변수를 만들 때 용도와 크기를 지정해야 한다.
    • Int = 12345; 정수
    • Long = 123145677789; 큰 정수
    • Boolean = true|false; (참|거짓)
    • String - "문자열"; 여러 문자, 더블쿼터 사용
    • char = 'A'; 한 글자, 싱글쿼터 사용
    • float = 0.1241f; (소수점)
    • double = 0.21242153645476695; (소수점-좌표)

Program 에서의 변수

  • wineglass
  • 변수 타입 : 와인잔
  • 변수 이름 : wineflass
  • 담긴 내용 : 와인

String(변수 타입) wineglass(변수 이름) = “와인 반잔”(변수 안의 값) ;

  • 실제 변수 선언 시 타입은 아래와 같다.
자료형설명
boolean논리 자료형(true / false)
String문자열 클래스
byte1 바이트의 정수형 자료 타입
char2 바이트의 문자형 자료 타입
int4 바이트의 정수형 자료 타입
long8 바이트의 정수형 자료 타입
float4 바이트의 실수형 자료 타입
double8 바이트의 실수형 자료 타입

scope

  • 변수는 선언된 곳보다 바깥쪽 영역에서는 사용 불가능하다.
  • 입력
  • 출력

casting

  • 우리는 한 컵에 있는 내용물을 다른 컵에 옮겨 담을 수 있다.

  • 이것을 형 변환(Casting) 이라고 부른다.

  • 작은 잔의 내용물을 큰 잔에 넣는 것은 따로 절차가 필요 없다(묵시적 형변환)

  • 큰 잔의 내용물을 작은 잔에 넣을 때는 절차가 필요하다.(명시적 형변환)

  • 입력

public class Casting {

public static void main(String[] args) {
	//명시적 행변환 : 작은 컵에서 큰 컵으로 넘길 때, 또는 형태가 다를 경>우 확인이 필요하다.
	char charValue;
	
	int intValue =74;
	long longValue = 500;
	
	float floatValue;
	double doubleValue =3.14;
	
	charValue = (char) intValue;
	
	intValue = (int) longValue;
	
	floatValue = (float) doubleValue;
		}

}

  • 묵시적 행변환 예시
  • 각 타입별 크기 확인법
    • 자료형.MAX_VALUE = 해당 자료형의 최대 값
    • 자료형.MIN_VALUE = 해당 자료형의 최대 값
  • 입력
  • 출력

Method

정의

  • 변수가 데이터를 담는 무언가라면
  • 메서드는 동작을 실행해 주는 무언가이다.

구조

  • 메서드는 아래와 같은 구조로 이루어져 있다.
    반환 타입 토스트기메서드 이름 (빵)매개변수 {

빵을 굽는다;실행문

return 구워진 빵;반환문
}

  • 입력

  • 출력

Compere(비교 연산)

  • java 에서는 무자열 비교를 == 로 하지 않는다.
  • 변수.equals(변수)
  • 입력
  • 출력

Condition

  • if 는 조건이 참이면 무조건 실행이 된다.

  • Dead Code : 이건 절대로 실행되지 않는다는 경고

  • 실행

  • 출력

Loop

  • unreachable code : 위 구문대로라면 여기까지 당도할 수 없다는 뜻
  • 해결방법 1 : 아래 코드를 지워버린다.
  • 해결방법 2 : 특정한 상황에 정지할 수 있는 구문을 추가해 준다.
  • 입력
  • 출력

Array

정의

  • 배열은 특정 지점을 기준으로 일렬로 배치되어야 하므로 공간이 확보되어야 한다.
  • 때문에 선언 시 미리 크기를 지정해야 한다.

public class ArrayDefine {

public static void main(String[] args) {
	// 배열 선언 시 크기 지정은 필수이다.
	int[] score = {70,80,90}; //그래서 들어갈 숫자를 넣어서 선언하거나
	String names[] = {"홍길동","고길동","박길동"};
	
	//크기를 미리 지정해야 한다.
	int[] arr = new int[7];
}

}

InputOutput

  • 자바에서 배열에 값을 넣고 빼는 방법은 직접 인덱스를 지정하는 방법밖에 없다.
  • 입력
  • 출력

Apart(2차원 배열)

  • 4층 4호짜리 아파트를 구성한다고 가정했을 시

  • 2중 for 문을 이용하여 배열의 길이(arr.length)만큼 모두 채워 주었다.

  • 입력

  • 출력

Room(3차원 배열)

  • 4층 4호 방 3개짜리 아파트를 구성한다고 가정
  • 이미 지정된 인덱스의 값을 제외하고 나머지 인덱스를 공실로 적용하는 코드를 짜주었다.
  • 입력
  • 출력

클래스(class)

  • 프로젝트를 생선한 후 package 와 class 생성

Object Oriented Programming

  • OOP 는 어떤 관점으로 보아야 할까?
  • 남의 부품(code)을 가져다 쓴다.
  • 어떻게 해야 남의 부품(code)을 쓸 때 편할까?

Classification

  • 다른 부품을 잘 사용하기 위해서는 분류가 필요하다.
  • 그래서 Java 는 package 와 class 라는 분류(classification) 체계가 존재한다.
  • Class 는 각종 method 와 변수 등을 담는 분류(classification) 이다.
  • 그러므로 class 의 이름은 어떤 변수와 함수의 종류를 대변하는 이름이어야 한다.
  • ex1: run(), jump(), walk(), swim() = Exercise
  • ex2: plus(), minus(), multiple(), devide() = Calculation
  • 그리고 이런 클래스들을 종류별로 담아놓은 폴더가 바로 package 이다.

Class 특징

  • OOP 의 특징은 4가지이다.

  • 모두 "남의 소스를 편리하게 사용"하도록 하는 것에 초점이 맞춰져 있다

  • 각 특징이 무엇을 나타내는지 생각해 보자

    • 캡슐화(Encapsulation)
    • 상속(Inheritance)
    • 추상화(Abstractionism)
    • 다형성(Polymorphism)

Class 선언

  • Java 의 파일은 최소 1개 이상의 class를 가지고 있어야 한다.

  • class 는 하나의 자료형이 될 수 있다.(String, Interger, Double,...)

  • class 안에 class를 선언할 수도 있다.

  • class 를 만드는 데 몇 가지 규칙이 있다.

    • 클래스의 첫 글자는 대문자로 한다.
    • $나 _ 외의 특수문자는 사용할 수 없다.
    • 클래스와 자바 파일명은 서로 동일해야 한다.

정의

요약

  • Class 는 classification 의 약자로 구분을 의미한다.
  • class 이름은 보통 안에 있는 메서드들을 대표하게 된다.
  • class 는 하나의 자료형이 될 수 있다.
  • Class 이름의 첫 글자는 대문자여야 한다.

Class 의 객체(instance)화

  • Class의 특정 내용을 사용하기 위해서는 class를 객체화해야 한다.

  • "객체화"란 원본 class를 복사해 오는 것을 의미한다.

  • 복사된 객체는 변수에 담길 수 있다.

  • 이때 데이터 타입은 객체의 원본 클래스 형태가 된다.

  • 입력

  • 출력

유달리 개념이 많았던 날.
개념 정리를 한 번 더 할 필요가 있다.

profile
JAVA 개발자로 가는 길

0개의 댓글

관련 채용 정보