본문 바로가기

Study

(23)
[Java] 생성자와 this 생성자 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메소드이다. 특징은 다음과 같다. 리턴 값이 없다. 메소드 이름이 클래스의 이름과 같다. 만약 생성자가 없다면, 컴파일러가 기본 생성자를 자동으로 추가해준다. 생성자에서 다른 생성자 호출하기 - this 생성자 이름으로 클래스 이름 대신 this 사용하기. 다른 생성자 호출 시 반드시 첫 줄에서만 가능. class Car { String color; String gear; int door; // 생성자의 오버로딩 같은 느낌이 든다. Car(){ this("white", "auto", 4); } Car(String color, String gear, int door){ this.color = color; this.gear = gear; this.door..
[Java] 오버로딩 오버로딩 하나의 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것이다. 하나의 이름을 가진 메소드에 여러 가지 기능을 과적(overloading)한 것이라고 생각하면 된다. 오버로딩의 조건 메소드의 이름이 같고, 매개변수의 개수와 타입이 달라야 한다. 이름이 같아도 매개 변수로 구분이 가능해지기 때문에 오버 로딩이 성립하는 것이다. 오버로딩의 예시 println 메소드가 대표적인 예이다! 데이터 타입에 따라 오버로딩 된 메소드들 중 하나가 실행된다. void println(int x); void println(String x); 오버로딩의 장점 이름을 고민할 필요가 없어진다. 같은 기능을 하는데 파라미터가 다양한 경우, 오버로딩이 불가능하다면각자 다 다른 이름을 정해야 할 것이다. 이 문제를 해결해..
[Java] 변수와 메소드 변수와 메소드 변수의 종류 클래스 변수 클래스가 메모리에 올라갔을 때 생성 모든 인스턴스가 공통된 저장공간(변수)를 공유 인스턴스 변수 앞에 static을 붙이면 OK ⇒ static int width = 100; 인스턴스 변수 인스턴스 생성 시 생성 인스턴스마다 다른 값을 가지는 경우 지역 변수 클래스 이외의 영역 (메소드, 생성자) 변수 선언문 수행 시 생성 메소드 선언과 구현 반환타입 이름(파라미터) { ... //메소드 구현부 return -1 // 반환 값은 최대 1개 } int add(int x, int y) { int result = x + y; return result; } 반환 값이 없는 경우? 반환 타입으로 void를 주면 된다. JVM의 메모리 구조 JVM은 프로그램 수행에 필요한 메..
[Java] 클래스와 객체 클래스와 객체 클래스는 객체를 생성하기 위한 하나의 틀이며, 설계도이다. 설계도를 잘 짜면 쉽고 빠르게 좋은 제품을 생산할 수 있듯, 클래스를 잘 짜놓으면 객체를 쉽고 빠르게 만들어 낼 수 있다. 객체와 인스턴스 클래스로 부터 객체를 만들어 내는 과정을 인스턴스화라고 한다. 그 클래스로 부터 만들어진 객체는 인스턴스라 한다. 만약 rpg 게임이 있다고 하자. 신규 가입 유저가 존재할 때 캐릭터 생성을 누르면, 미리 설계해둔 Chracter라는 클래스를 통해 해당 유저의 캐릭터가 생성된다. 여기서 생성된 캐릭터가 인스턴스가 되는 것이다. 객체의 구성요소 property: 변수 (특성, 필드, 상태) ⇒ 인스턴스마다 다른 속성을 가질 수 있다. function: 메소드 (함수, 행위) ⇒ 모든 인스턴스에 대..
[python] 프로그래머스 - 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든..
알고리즘 카테고리를 열며 대한민국에서 개발자를 준비하는 사람으로서 외면할 수 없는건 알고리즘 문제 풀이인 것 같다. 그동안 풀었던 문제들을 단순히 깃에 push 하기만 했는데, 시간이 지나고 풀었던 문제들을 살펴보면 왜 이렇게 풀었는지 기억이 안나는 경우가 많았다. 문제를 풀었던 당시에 다양한 코드를 보며 감탄했던 기억이 있는데, 감탄했다는 사실만 머리에 남고 유용했던 모듈들이 머리에 남지 않더라. 내 코테 실력이 제자리 걸음인 이유가 여기서 기인하는 것 같은 느낌이 들었다. 이런 이유로 다른 사람들의 코드를 보고 참신하다고 생각했던 부분이나, 문제를 푸는데 있어 어떤 어려움을 겪었는지 적어놓자 결심했고, 알고리즘 카테고리를 열게 되었다. 바쁘면 평소와 같이 문제를 풀고 깃에 push하는 것으로 그치겠지만, 시간적 여유가 있거나..
[부스트코스] HTTP 프로토콜의 이해 HTTP 웹 브라우저가 서버에게 요청하면 서버는 브라우저에게 응답한다. 이때 지키는 통신 규약이 http이다. 헤더를 통해서 요청 헤더와 응답 헤더를 볼 수 있으며 서버는 정보를 제공하면서 응답한 정보를 헤더를 통해 알려준다. URL 한대의 컴퓨터에는 서로 다른 포트 값을 가진 소프트웨어 서버가 동작이 가능하다. 웹의 기본포트는 80번이다. URL은 인터넷 상의 자원이 어디에 위치하는지를 의미하며 특정 웹 서버의 특정파일에 접근하기위한 하나의 주소라고 생각하면 된다. HTTP 통신 Request Header hostname이 꼭 필요하다. 요청하는 웹사이트의 웹서버의 주소를 적어야한다. 포트번호: 한대의 컴퓨터에는 여러개의 서버가 설치되어있을 수 있다. 포트번호에 등록된 웹서버를 의미하는 것! 가상호스트..