본문 바로가기

전체 글

(94)
[python] 기초문법 - 람다함수 파이썬 기초문법 for 코딩테스트 람다함수(익명함수,람다표현식) #1더해주는 함수 정의 def plus_one(x): retrun x+1 print(plus_one(1))#2출력 #람다함수를 이용한다면? #변수에 람다식 정의 plus_two=lambda x: x+2 #변수를 입력받아 2를 더해주는 람다식함수(왼쪽: 매개변수, 오른쪽:리턴값) print(plus_two(1))#3출력 a=[1,2,3] print(list(map(plus_one,a)))#a란 리스트 요소에 plus_one함수를 적용해라. #map에 첫번째 매개변수는 함수가 들어간다. 여기서 따로 함수를 정의하지 않고 람다식을 넘길 수 있다. a=[1,2,3] print(list(map(lambda x: x+1,a)))#[2,3,4] 출력
[python] 기초문법 - 함수만들기 파이썬 기초문법 for 코딩테스트 함수만들기 두 매개변수를 받아서 더해서 결과를 리턴하는 함수 만드는 방법 def add(a,b):#함수 정의 c=a+b print(c) #main 스크립트 add(3,2)#함수호출, 5출력 add(5,7)#12출력 #함수는 main 스크립트 위에 작성해야한다. #add를 먼저 호출하고 그 밑에 함수가 정의되어있으면, 컴퓨터는 add를 호출하는 시점에 함수가 정의되어있는지 모르기 때문이다. #함수 리턴 값 받기 def add(a,b):#함수 정의 c=a+b return c #main 스크립트 print(add(3,2))#5를 리턴 받음. 5출력 #리턴하는 순간 함수호출이 종료 된다. def add(a, b): c=a+b d=a-b return c,d #여러개 의 값 리턴 ..
[python] 기초문법 - 2차원 리스트 생성과 접근 파이썬 기초문법 for 코딩테스트 2차원 리스트 생성과 접근 a=[0]*10 #0을 10개 가지는 리스트 생성 print(a)#[0,0,0,0,0,0,0,0,0,0] 출력 a=[[0]*3 for _ in range(3)]#0을 3개 가지는 1차원 리스트 3개를 만들어 2차원 리스트 생성 print(a)#[[0,0,0],[0,0,0],[0,0,0]] 출력 도식화 #a[행 번호][열 번호] 이다. 즉 a[0][1]=1, a[1][1]=2를 하면 이과 같이 표현 할 수 있다. a=[[0]*3 for _ in range(3)]#0을 3개 가지는 1차원 리스트 3개를 만들어 2차원 리스트 생성 a[0][1]=1 a[1][1]=2 for x in a: print(x) #출력력과: 2차원 리스트를 반복문으로 돌리면 ..
[JAVA] 기초문법 - 인터페이스(2) 즉, 클라이언트는 인터페이스정의만 보고 가져다 쓰는 것.(spec), 구현된 방식은 몰라도 사용 가능하다. 인터페이스 정의 인터페이스 구현 클래스1 인터페이스 구현 클래스2 인터페이스 구현 클래스3 테스트코드 사용자에게 입력받아서 타입에 맞는 인스턴스 생성후 업캐스팅 예외처리 부분은 추후에 다룸. 인터페이스만 보고 클라이언트코드 작성가능하다. (인터페이스를 구현한 세부 코드를 몰라도) ㅡ> 다형성 구현 웹에서 DB와 연동할때 자바에서 제공하는 커넥션 또한 인터페이스로 구현 되어있다. JDBC: db가 자바와 연동하기 위해 구현되어야한다는 명세 커넥션,statment 등. ㅡ> 인터페이스 구현은 오라클, mysql 등에서 구현해준다. 오라클 mysql에서 구현해준 .jan 파일을 받아서 사용. 사용자는 오..
[JAVA] 기초문법 - 인터페이스 인터페이스-설계용으로 사용함. 구현코드가 없는(추상메서드) 메서드로 이루어진 클래스 인터페이스 선언 예시 인터페이스에서 멤버변수는 pre컴파일 단계에서 public static final 키워드가 자동삽입됨. 인퍼테이스에서 메서드는 pre컴파일 단계에서 public abstract 키워드가 자동 삽입됨. 즉 인터페이스는 상수와, 추상메서드가 선언됨. 인터페이스에 모든 메서드를 구현하지 않으면 추상클래스가 되어야 한다. 인터페이스를 구현할때는 상속에서 extends를 썼던것과 달리 implements 키워드를 사용해야한다. 인터페이스를 일부 구현하면 추상클래스이다. 위 예시는 인터페이스 일부를 구현한 추상그래슬를 상속받아 나머지 인터페이스 메서드까지 모두 구현한 클래스이다. 자바에서 인터페이스 implem..
[JAVA] 기초문법 - 추상클래스와 템플릿 메서드 추상메서드는 하위 클래스에서 구현(차 마다 방식이 다르다고 가정) run 메서드는 시나리오(함수 호출의 순서(과정)) final 메서드로 정의하면 하위클래스에서 오버라이딩 할 수 없다.ㅡ>템플릿 메서드 즉, 변하지 않는 일련의 과정을 정의할때는 하위 클래스에서 오버라이딩(재정의)할 수 없게 final 키워드를 붙인다. final 키워드는 접근제어자 앞이나 뒤에 써도 상관 없다. 템플릿 메서드 장점 시나리오 수정(추가,삭제 등)이 용이하다. 추상메서드가 아닌 선언만 한 메서드(구현하지 않은 메서드)를 선언해 놓고 필요에 따라 정의만 해서 사용이 가능하다. 시나리오는 정의해 놓고 필요에 따라 하위클래스에서 waschcar()메서드를 재정의해서 사용할 수 있다. ㅡ> 훅메서드 라고 불림.(프레임워크 에서 많이..
[JAVA] 기초문법 - 추상클래스 활용하기 추상클래스 추상메서드 구현부가 없는 메서드 이다.(매개변수,반환형,함수이름,접근제어자만 선언해 놓는 것) 추상메서드가 포함되어 있으면 해당 메서드를 포함하는 클래스는 추상클래스여야함. 추상메서드만 가져야하는 것은 아니다. 추상메서드는 상속을 하기 위해 만든다. 추상클래스는 인스턴스화 될 수 없다. 추상클래스를 상속받은 하위 클래스들은 만드시 추상메서드를 구현해야한다. 추상메서드를 구현하지 않을 것이라면 추상클래스가 되어야 한다. 상속받은 추상메서드 구현한 모습. 상속받은 추상메서드를 전부 구현하지 않을 것이라면 해당 클래스는 추상 클래스가 되어야 한다. 추상메서드를 구현하지 않은 추상클래스를 상속받은 또다른 클래스에서 구현하지 않은 추상메서드를 구현한 모습. 상위클래스는 추상메서드 구현을 하위클래스에게 ..
[JAVA] 기초문법 - 다형성 활용과 다운캐스팅 여러개의 클래스 타입을 상위 클래스 배열로 관리. 상속받았고, 업캐스팅인 경우에 인스턴스만의 메서드를 호출 하고 싶을때 다운캐스팅이 필요하다. 들어온 인스턴스의 타입을 확인하고 해당 타입으로 다운캐스팅 하는 코드이다. (인스턴만의 메서드를 호출하기 위해)