본문 바로가기
  • 시 쓰는 개발자

프로그래밍 문법25

6장 객체지향 (5) 오버로딩 , 생성자 , this , this() , 변수 초기화 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-30,31 오버로딩 오버로딩 (overloading, 과적합) 한 클래스 안에 같은 이름의 메소드를 여러개 정의하는 것. 이름이 같다는 것은 하는 일이 같다는 것이다. Ex) 프린트문을 생각. println()은 println(char x), println(int x) 등 매개변수에 따라서 여러 형태이다. 오버로딩이 성립하기 위한 조건 메소드 이름이 같아야 한다. 메소드끼리 매개변수의 개수 또는 타입이 서로 달라야한다. (반환 타입은 상관 없다.) [자바의 정석 - 기초편] ch6-32~35 생성자, 기본 생성자 생성자 인스턴스 생성때마다 호출되는 인스턴스 초기화 메소드이다. 객체 만.. 2024. 3. 10.
6장 객체지향 (4) 기본형/참조형 매개변수 , static/인스턴스 메소드 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-23 기본형 매개변수 기본형 매개변수 : 변수의 값을 읽기만 할 수 있다. (read only) 여기서 말하는 기본형은 다음 8개의 변수를 말함. int, float, char, String, byte, boolean, double, long 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다. (read & write) class Data { int x; } class PrimitiveParamEx { public static void main(String[] args) { Data d = new Data(); d.x = 10; System.out.println("main() : .. 2024. 3. 10.
6장 객체지향 (3) 메소드 , 호출스택 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-14~16 메서드란? 메서드의 선언부와 구현부 메소드란? 메소드는 문장(명령문)들을 묶어놓은 것이다. 좀 더 구체적으로는 자주 쓰는 코드를 괄호로 묶고서 이름을 붙여놓으면 그게 메소드다. 메소드는 값을 받아서 처리하고 결과를 반환한다. 이때 값은 여러개 받을 수 있지만 반환하는 값은 항상 1개이다. 만약 여러개를 반환하고 싶으면 배열에 담아서 주거나 객체로 묶어서 줘야한다. 단, 하나의 메소드는 하나의 기능만 수행하도록 작성하는 것이 좋다. 메소드의 장점 코드 중복 줄임 코드 관리 쉬움 코드 재사용 가능 코드가 간결해져서 가독성에 좋다 메소드 = 선언부 + 구현부 선언부 : 메소드 이.. 2024. 3. 10.
6장 객체지향 (2) 클래스변수 , 인스턴스변수 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-11 선언위치 변수종류 영역은 클래스 영역과 메소드 영역으로 나뉜다. 클래스 영역에는 선언문만 가능하다. 프린트문 같은 것들은 불가능하다. 1. 인스턴스 변수(iv) : 클래스 영역에 선언된 변수. 인스턴스 변수를 묶어놓은 것이 객체이다. 2. 클래스 변수(cv) : 클래스 영역에 선언된 변수. 인스턴스 변수에 static을 붙이면 클래스 변수가 된다. 3. 지역변수(lv) : 메소드 영역에 선언된 변수 변수의 종류 선언 위치 생성 시기 클래스 변수(cv) (static이 붙은 인스턴스 변수) 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수(iv) ★인스턴스가 생성됐을 때★ 지.. 2024. 3. 10.
6장 객체지향 (1) 객체 , 클래스 JAVA의 정석 강의를 들으며 공부하며 정리했습니다. 너무 자잘한 내용은 안적었습니다. [자바의 정석 - 기초편] ch6-1 객체지향 언어 - 6, 7장이 제일 중요하니 반복해서 공부한다. - 객체지향 규칙은 외워라. 그냥 a4용지에 적어서 외우기!! [자바의 정석 - 기초편] ch6-2~4 클래스와 객체 클래스(설계도) : 객체를 정의하는 것. 객체 생성에 사용 객체(제품) : 실제로 존재하는 것. 객체가 가지고 있는 기능과 속성에 따라 용도가 달라짐. 객체 = 속성(변수) + 기능(메소드) 인스턴스 : 객체랑 똑같다. 다만, 객체는 모든 인스턴스를 대표하는 general한 용어이고, 인스턴스는 특정 클래스로부터 생성된 객체를 말한다. Q. 클래스가 필요한 이유는? A. 객체를 생성하기 위해 ↓ Q. .. 2024. 3. 10.
헷갈리는 문법 정리 (3) - ord, join 1. 문자열 끝에 문자 추가 문자열은 append를 못쓴다! 그러므로 문자를 추가할 때 + 혹은 join을 사용해서 더해줘야한다. 2. 문자열 ord로 다루기 ord("a")라고 하면 97을 의미 ord("a") + 1 은 98이므로 chr(ord("a") + 1)은 b를 의미한다. (아스키코드 A = 65 , a = 97) 3. math.gcd math.lcm gcd 최대공약수 , lcm 최소공배수 (추가하기) 2024. 3. 7.
리스트 복사 하는 방법 1. 슬라이싱으로 복사 >>> list1 = [1, 2, 3, 4] >>> list2 = list1[:] 슬라이싱에서 시작점과 끝점을 생략하면 리스트의 모든 요소를 의미한다. 2. list()로 묶기 >>> list1 = [1, 2, 3, 4] >>> list2 = list(list1) 복사하고자하는 리스트를 list()로 감싸고 새롭게 리스트 객체를 선언해주면 된다. 3. copy 메소드 - (추천) >>> list1 = [1, 2, 3, 4] >>> list2 = list1.copy() 가장 가독성이 좋은 방법이라 추천하는 방법이다. 참고로 copy는 시간복잡도가 O(n)이다. 4. 리스트 연산 >>> list1 = [1, 2, 3, 4] >>> list2 = [] + list1 빈 리스트를 하나 써.. 2024. 3. 7.
파이썬 슬라이싱 슬라이싱 파이썬 slicing은 "iterable한 객체" 모두를 다룰 수 있다. 따라서 리스트, 튜플, 문자열 같은 것들을 다룰 수 있다. 1. 구조 : a[start : end : step] start: 슬라이싱 시작위치. 주의할 것은 이때 start가 의미하는 것은 index번호이다. 따라서 a[3:5]면 3번째 숫자부터 자르는 것이 아니라, 인덱스 3부터 가져오는 것이므로 실제로는 4번째 숫자부터 슬라이싱을 한다. end: 슬라이싱이 끝나는 위치인데, for문의 range처럼 end는 포함하지 않기 때문에 슬라이싱은 end-1까지 잘라짐 step: 몇개씩 끊어서 가져올지, 그리고 방향을 정한다. ex1. start부터 끝까지 가져오기 a[start:] ex2. 맨 처음부터 end-1까지 가져오기 .. 2024. 3. 7.
dictionary에서 key 다루기 dictionary에서 특정 key 찾기 : key in dict 딕셔너리에 특정한 key가 있는지 확인할 때 그냥 in 을 사용한다. 'a' in dict라고 하면 dict의 key들이랑 비교한다. 이때 return값은 True이거나 False이다. dictionary = { 2: 1, 3: 4, 5: 2, 1: 3, 4: 1} print(1 in dictionary) # True print(5 in dictionary) # True print(10 in dictionary) # False print('a' in dictionary) # False dictionary에서 특정 key에 매칭되는 value 찾기 : dict.get(key) get() 메소드에 key값을 넘겨주면 해당 key값의 value.. 2024. 3. 7.