본문 바로가기
💾 Backend/자바

자바 공부 정권지르기!👊

by 정람지 2022. 12. 21.

자바 공부를 시작했습니다. 

만드는 게임의 DB를 한번 만들어보고 싶은데 자바가 백에서 1타라 해서요.

15일 기초 끝내기! 기록

15일차 (1/2) - 못할줄알았다정은체


자바정복 정권지르기 1일차 (12/19)

자바 소개와 변수와 자료형 공부

C와 유사합니다

리터럴~ 식별자 유의~


자바정복 정권지르기 2일차 (12/20)

연산자와 제어흐름 공부

C와 유사합니다 파이썬 최고

- 비트연산자를 쓸 일이 있습니까? 정말 궁금해서 하는 말입니다.


자바정복 정권지르기 3일차 (12/21)

-객체 지향이라는 것을..

코드의 재사용성이라는 장점을 우리 게임 코드에 적용하고 싶기 때문에..

클래스/객체 열심히 때려보겠습니다.

 

클래스는 구조체 공용체랑 비슷하게 생깅. 어케다른지?

이름규약
클래스명 대문자시작
상수명 전부대문자
패키지명 전부소문자
변수명.메서드명 소문자시작
public클래스명 == 자바파일명

클래스형 객체자료형 참조자료형

 

함수호출/ 지역변수 -> 스택 메모리

인스턴스 ->힙 메모리

 

클래스 생성 > 생성자(==클래스 이름)

디폴트 생성자 / 직접 구현

 

접근 제어자

정리

객체(생성된 인스턴스)
패키지
클래스(객체를 프로그래밍하기위한 코드)
멤버변수(클래스속성). 메서드(클래스기능)
인스턴스(참조변수.스택메모리->힙메모리) 참조값(인스턴스메모리주소값)
new예약어
생성자(인스턴스 변수의 초기화)


자바정복 정권지르기 4일차 (12/22)

this 예약어

 

static변수(정적변수 클래스 변수)

클래스 메서드

 

유효범위

지역변수- 함수 내(스택메모리)

멤버변수(인스턴스변수)-클래스의 메서드 내( 힙메모리)

클래스변수 - 데이터영역 메모리(항상)

 


자바정복 정권지르기 5일차 (12/23)

 

- 크리스마스 케이크만들.. 목표치 달성 실패..

 


자바정복 정권지르기 6일차 (12/24)

+ 기록한 것 날림~

- 크리스마스파티.. 목표치 달성 실패 22..

 


자바정복 정권지르기 7일차 (12/25)

배열 

객체배열

얕은 복사 깊은 복사 

향상된 for문

다차원 배열

ArrayList 클래스

 

JavaDoc 확인하기

 

상속과 다형성

클래스 상속

protected 예약어

 

- 메리 크리스마스~


자바정복 정권지르기 8일차 (12/26)

상속에서 클래스 생성/형 변환

 

-인간은 나약합니다

나만 나약할수도

내일 3일치합니다


자바정복 정권지르기 9일차 (12/27)

A extends B

자바는 다중 상속 ㄴ

상위 클래스의 생성자 먼저 호출

 

super 예약어(상위 클래스의 주소) <-> this (자기 자신주소)

super() 상위 클래스 생성자 사용(매개변수 있는것

super. 상위 클래스 멤버 변수/메서드 참조

 

하위 클래스의 인스터스의 자료형을 상위 클래스형으로 형변환하여 사용 가능

Customer vc = new VipCustomer(); .......⍟

 

메서드 오버라이딩 -> 하위 클래스에서 메서드 재정의 

@Override 애노테이션

 

가상 매서드

선언한 클래스형이 아닌 생성된 인스턴스의 메서드 호출 ( ⍟에서 재정의된 경우)

 

다형성

하나의 코드가 여러 자료형으로 구현되어 실행

 

IS-A 관계(일반적상황- 구체화) 에서만 상속 사용하기 -- 포유류->사람

IS-A 관계(한 클래스가 다른 클래스 소유) -- 과목->학생

 

다운캐스팅

상위 클래스로 형 변환되었던 하위 클래스를 다시 원래 자료형으로 형 변환하는 것

instanceof

 

- 1일치했다. 내일 2일치한다.


자바정복 정권지르기 10일차 (12/28)

추상 클래스

추상 메서드 
abstract 에약어/ {} 없음

메서드 구현의 책임을 상속받는 클래스에 위임한다

- 상속받는 클래스가 추상 메서드를 다 구현하지 않을 시 얘도 추상 클래스

- 추상 클래스 인스턴스 생성 불가

 

템플릿 메서드

로직 흐름(시나리오 제어)

 

final 예약어

변수/클래스/메서드 사용 가능

재정의 불가(상수 / 클래스는 상속 불가 / 템플릿 메서드)

public static final (여러파일 공유 상수)

 

- 1일치했다. 내일 1일치한다.


자바정복 정권지르기 11일차 (12/29)

인터페이스 interface 예약어

변수는 상수로, 메서드는 추상 메서드로 인식

인터페이스를 구현한 클래스가 어떤 기능을 하는지 미리 알려주는 명세.약속의 역할

 

클래스에서 인터페이스 구현할 때

(extends 자리에) implements 예약어

추상 클래스가 되거나 추상 메서드 다 구현하기

 

- 맙소사 실패 반일치


자바정복 실패 12-14일차 (12/30 - 1 / 1)

- 연말이니까... 


자바정복 정권지르기 15일차 (1/2)

인터페이스 상수

(인터페이스 내)

디폴트 메서드

인터페이스에서 구현한 메서드 (하위에서 재정의 가능)

default 예약어(public 들어오는 자리에)

정적 메서드

인스턴스 생성과 상관없이 사용할 수 있는 메서드 (인터페이스 이름 참조)

- ... 큰일


자바정복 정권지르기 16일차 (1/3)

- 15일 안에 못 끝낼 것을 사실 알고 있었지만, 조금은 기대를 했었는데...다음에는 과거의 내 기대에 부응하는 내가 되길 바란다.

 

한 클래스가 여러 인터페이스를 구현할(상속받을) 수 있음

인터페이스가 인터페이스 상속 가능함 ( extends)

객체지향에 대한 챕터가 끝난 김에 공부할 겸 

내 중간 목표인 우리 게임 객체 지향적 코드로 바꿔보기를 해보았다. ( 최종목표는 백만들기^^)

왼쪽은 우리의 원래 코드였던 것(스크립트별 정리- 기능이 쫌 섞여있다)(수연아 짱)

오른쪽은 배운 걸로 고쳐본 코드 계획 ( 바뀐 기획 내용 추가)

ㅎㅎ

아빠한테 물어본 거

천사멘토 정인님

열심히 공부해야함..


자바정복 정권지르기 17일차 (1/4)

자바 JDK

기본 클래스

Object 클래스

 

- 영어회화 춤모임 코딩동아리 코딩스터디가 있었으므로..


자바정복 정권지르기 18-19일차 (1/5-6)

- 우주 포스터를 만들어야겠단 결심을 갑자기..

예쁘죠?


자바정복 정권지르기 20일차 (1/7)

자바 JDK - 기본 클래스 (java.lang 패키지)

외부 패키지의 클래스를 사용할 떄는 import문으로 선언해야 함 (java.lang 패키지는 그럴 필요 ㄴ)

 

Object 클래스

모든 자바 클래스의 최상우 클래스(모두 object 클래스 상속받음)

 

- toString() 메서드

객체 정보를 문자열로 바꿔 줌

인스턴스의 클래스 이름과 주소 반환

( String/Integer클래스에서 재정의되어있음 - 값만 출력)

 

- equals 메서드

두 인스턴스의 주소 값을 비교하여 boolean 값 반환

1) 인스턴스가 가리키는 주소가 같은 경우 (물리적 동일) - True

2) 주소는 다르지만 내용이 같은 경우 (논리적 동일) - 재정의를 통해 True 가능( String/Integer클래스에서 재정의되어있음)

 

-hashCode 메서드

객체가 저장되어야 할 위치나 저장된 해시 테이블 주소 반환

 

- clone 메서드

객체 원본을 유지해 놓고 복사하여 동일한 인스턴스를 만들어줌

사용하려면 클래스에 Cloneable 인터페이스를 구현해야 함

 

String 클래스

1) 문자열을 생성자의 매개변수로 하여 생성

2) 이미 생성된 문자열 상수를 가르키기

상수 값 저장 공간을 상수 풀 이라고 함 (2에서 사용)

 

- StringBuffer / StringBuilder 클래스

문자열 변경, 연결에 추가 메모리를 사용하지 않음 ( 변수가 final이 아님)


자바정복 정권지르기 21일차 (1/8)

Wrapper 클래스

기본 자료형을 위한 클래스

매개변수가 객체거나 반환 값이 객체형인 경우에 사용

기본자료형의 앞글자를 대문자로 바꾼 것 (integer -> Integer)

 

오토박싱 : 기본형을 객체형으로 바꾸는 것

언박싱 : 객체형을 기본형으로 바꾸는 것

 

Class 클래스

컴파일 된 class 파일에 저장된 클래스나 인터페이스 정보를 가져오는 데 사용

모르는 클래스의 정보를 사용할 경우

 

Class.forName() 동적 로딩하기


자바정복 정권지르기 22일차 (1/9)

컬렉션 프레임워크

자료 구조(데이터 관리)를 구현한 다양한 인터페이스와 클래스

 

제네릭

하나의 참조 자료형이 아닌 여러 참조 자료형을 사용할 수 있도록 프로그래밍하는 것

T - 자료형 매개변수 (static 사용 불가)

다이아몬드 연산자 - <>

 

- 갑작스러운 어려움에 정신을 못 차리는..

자바 계획을 재정립한다. 백준에서 자바로 문제를 좀 풀어야겠다. 


자바정복 정권지르기 23일차 (1/10)

백준에서 자바 문제 풀기ing  서버 개념에 대한 공부 ing

 


continue..

 

https://replit.com/languages/java10

 

Java Online Compiler & Interpreter

Write and run Java code using our Java online compiler & interpreter. You can build, share, and host applications right from your browser!

replit.com

이클립스 사용중..

인텔리제이 사용 시작