본문 바로가기

Language43

반복문(for, while) 표현식(Expression) 💡 호출하지 않아도 실행되는 메서드 ex) for(), while() 반복문 조건이 유지되는 한 또는 정해진 횟수만큼 처리를 되풀이하는 경우 반복문 For 정해진 횟수만큼 반복하는 경우에 사용 (끝을 아는 경우) for (초기식; 조건식; 증감식){ // 실행문 } For 문을 이용해 구구단 출력하기 💡 구구단 2단 출력하기 for(int i=1; i 2023. 4. 5.
배열(Array), 2차원 배열 배열(Array) 💡 연관된 데이터를 저장하기 위한 자료 구조 배열 메모리 공간 주소는 시작 번지(0번지)를 가리킨다. 값이 있을 때 배열을 선언하는 방법 int[] nums = {4, 5, 6}; 의 우변은 new int[3]; + arr[0]=4; arr[1]=5; arr[2]=6; 동시에 작동 값이 없을 때 배열을 선언하는 방법 # 우변 new int[3] → heap에 int 3개 공간(16바이트) 확보 + 주소 [0,1,2] 설정 (여기서 숫자가 들어가지 않으면 공간을 얼마나 확보해야 할 지 모르니 에러가 발생함.) ​ # 좌변 int[] nums → int [] : (int가 여러개 있는 타입) 배열 선언. → nums : 선언한 배열의 주소 2차원 배열 💡 배열 안에 배열로 값이 들어가는 것.. 2023. 4. 5.
객체지향 설계 5원칙 SOLID, SRP와 DIP 코드로 이해하기 객체지향 설계 5원칙 SOLID 1. SRP(Single Responsibility Principle) : 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. SRP에서는 책임자체가 분명해지기 때문에, 변경에 의한 연쇄 작용에서 자유로워 질 수가 있다. 2. OCP(Open Closed Principle) : 개방 폐쇄 원칙 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있다. 자신의 확장에는 열려있고, 주변의 변화에 대해서는 닫혀 있어야 한다 interface 를 통해 구현하여 해결 3. LSP(Liskov Substitution Principle) : 리스코프 치환 원칙 서브타입은 언제나 자신의 기반타입으로 교체할 수 있어야 한다. 클래스 상속, 인터페이스 상속을 이용해 확장성을 획득한다... 2023. 4. 5.
추상클래스(abstract class), 인터페이스(interface) 추상클래스(abstract class) 1. 추상클래스는 new 할 수 없다. 즉 메모리에 띄울 수 없다. ex) 의자나 침대는 new 가능하지만 가구는 new 불가능 2. 추상클래스는 일반 메서드와 추상 메서드를 모두 가질 수 있다. 3. 추상 메서드는 몸체({})를 가질 수 없다. 4. 추상클래스를 상속하면 반드시 추상메서드를 오버라이드 해야 한다. 추상메서드 이해하기 인터페이스 자바의 인터페이스 : 행위에 대한 제약 인터체인지 : 1시, 3시, 5시에만 길이 있다면 12시로는 길이 없으니 못 가겠지 행위에 대한 강제성을 가지게 된다. 우리집 앞에 있는 우물은 내 거니까 내가 정한 인터페이스 대로 이용해야 한다. 내가 갑이고 이용자가 을이 된다. 즉, 인터페이스는 갑 을 관계가 존재하는 약속 프로토콜.. 2023. 4. 5.
매개변수(Parameter)와 인수(Argument)의 차이 매개변수(Parameter) 💡 메서드 선언의 변수 목록 인수(Argument) 💡 메서드가 호출될 때 전달되는 실제 값 2023. 4. 5.
오버로딩(Overloading), 오버라이딩(Overriding) 오버로딩(Overloading) 💡 오버로딩(Overloading)이란? : 메서드명이 같아도 매개변수의 개수, 타입 에 차이가 있으면 다른 메서드로 인식하게 하는 것. 오버로딩을 왜 써야 할까? 아래 코드는 공격 코드가 잘 작성 되었지만, 누구를 공격할 지가 없다. 아래처럼 공격 코드를 작성하면, 모든 메서드명을 기억해야하는데, 불가능하다. 아래처럼 오버로딩을 통해 메서드 명을 일치시키면 메서드 명을 하나만 기억해도 된다. 하지만 오버로딩은 경우의 수가 많으면 많을 수록 힘들어지는 단점이 있다. 오버라이딩(Overriding) 📌 오버라이딩 부모의 메서드를 무효화. 위처럼 여러 유닛들이 서로 공격하는 상황을 만들 때, 오버라이딩을 이용한다. 질럿, 드라군, 다크템플러를 프로토스 유닛으로 추상화해본다. .. 2023. 4. 4.