728x90

java 15

JAVA 제네릭 타입 컬렉션 클래스

JAVA 제네릭 타입 컬렉션 클래스 배열 데이터의 삽입/삭제 용이, 동적 할당 용이를 위해 제네릭 타입 컬렉션 클래스 사용 제네릭 : 자료형의 일반화 , 제네릭 타입에 객체만 넣을 수 있다, 엄격한 타입 checking 컬렉션 : 자료구조, 기본 자료형은 wrapper 클래스 사용, 제네릭 기법으로 구현 하나의 클래스를 만들어서 여러 자료형의 배열을 만들고 싶다면 제네릭 클래스로 멤버 추가 제네릭 클래스의 객체가 생성될 때 자료형이 지정되고, 생성 뒤에는 해당 자료형만 담을 수 있음 Iterator : 반복자 객체, 컬렉션에서 요소의 순차 검색을 위한 인터페이스 - 모든 컬렉션은 Iterator를 통해 순차적으로 반복자 객체를 얻을 수 있다. Vector v = new Vector(); Iterator ..

JAVA interface 인터페이스 abstract class 추상 클래스

JAVA interface 인터페이스 abstract class 추상 클래스 추상 클래스 : 객체 생성 불가능, 참조 변수 선언은 가능 공통점이 있는 객체들에게 어떤 메서드를 강제 구현시키도록 한다. 상속 시 super 클래스로 존재하고, 추상 메서드를 하나 이상 포함시켜야 한다. 그리고 자식 클래스가 인터페이스 구현을 강제하고 몸체를 구현한다. 추상 클래스 정의와 추상 메서드 정의 모두 abstract 키워드로 한다. 추상 메서드를 재정의하면서 오버 라이딩해 클래스마다 구현을 다르게 한다. 하위 클래스 사이에 공통으로 필요한 메서드를 추상 클래스에 추가한다. 같은 이름, 같은 동작 : 일반 메서드에 구현 같은 이름, 다른 동작 : 추상 메서드에 구현 인터페이스 : 다중 상속이 불가능한 JAVA에서 필요..

JAVA 상속과 다형성

JAVA 상속과 다형성 다형성 : 다양한 형태가 존재한다. 단순하게 만들어 준다는 뜻 활용 : 다양한 참조 변수를 가지는 객체의 배열, 여러 종류의 매개변수 받기 업 캐스팅 : 허용 O, 자동으로 형 변환시켜준다 Person P = new UnivStudent(); Person P = (Person)(new UnivStudent()); // 자동 실행 다운 캐스팅 : 허용 X, 업 캐스팅 후 다운 캐스팅만 허용한다 즉, 원래 내 타입으로 돌아오는 것만 허용한다 -instanceof 연산자로 타입 확인하기 -object 클래스는 모든 클래스의 super 클래스로, 모든 객체를 가리킬 수 있다. -자식 객체의 상속받지 않은 멤버에 접근하기 위해서는 반드시 다운 캐스팅되어야 한다. public class Pe..

JAVA Polymorphism Upcasting Downcasting 자바 다형성 업 캐스팅 다운 캐스팅

JAVA Polymorphism Upcasting Downcasting 자바 다형성 업 캐스팅 다운 캐스팅 다형성 다양한 형태가 존재한다는 의미이다. 다형성을 이용해 프로그래밍을 유연하게 만들 수 있다. 객체의 종류에 따라 달라지는 코드 사용을 프로그래밍 시 구분하지 않고 사용할 수 있도록 해준다. 따라서 프로그래밍이 단순해진다. 참조 변수에 객체를 할당해주는 기본적인 방법은 참조 변수의 자료형과 할당하고자 하는 객체의 자료형이 일치하는 것이다. Upcasting 업 캐스팅 super 클래스형 참조 변수로 sub 클래스 객체를 가리키는 데 사용이 가능하다. Person p = new UnivStudent(); Person p = (Person) (new UnivStudent()); sub 클래스 객체의 ..

JAVA Method Overriding 자바 메서드 오버 라이딩

JAVA Method Overriding 자바 메서드 오버 라이딩 메서드 오버 라이딩 super 클래스에서 상속받은 멤버를 sub 클래스에서 다시 정의하는 것이다. 기존의 멤버를 요구사항에 맞게 수정하는 효과를 가진다. super 클래스에서와 동일한 형태로 정의한다. super 클래스에서 상속된 멤버는 은폐되어 sub 클래스 객체의 메서드에서 은폐된 멤버에 접근하기 위해서는 super 참조 변수를 사용해야 한다. 오버 라이딩과 오버 로딩을 헷갈리지 말자. 구분 오버라이딩(재정의) 오버로딩(다중정의) 접근제한 부모의 멤버 함수보다 자식 멤버 함수의 접근제한이 비슷하거나 더 넓어야 한다. 상관없다. 반환형 같아야 한다. 상관없다. 메서드명 같아야 한다. 같아야 한다. 인자 (타입 / 개수) 같아야 한다. 반..

JAVA 클래스 상속

JAVA 클래스 상속 클래스 상속 관계 자바 프로그래밍에서 클래스를 상속하게 된 배경은 비슷한 동작을 하는 서로 다른 객체들을 위해 포괄적인 속성과 행위를 갖도록 구현하기 위해서이다. 비슷한 내용의 클래스가 반복되면 비효율적이기 때문에 상속을 통해 비슷한 행위에 대해 서로 다른 인터페이스를 가질 수 있다. 상속관계는 특정 클래스가 가지는 일부 속성과 행위를 다른 클래스에게 제공하기 위해 맺는 관계이다. 기존 클래스의 멤버를 그대로 이용하면서 새로운 멤버를 추가할 수 있고, 기존 클래스의 멤버를 수정하여 사용하는 것도 가능하다. 상속의 이점 코드를 재사용하여 유지보수가 용의 하고 비슷한 코드를 다시 사용할 수 있다. 그리고 연관된 일련의 클래스에 대한 규약을 정의해 비슷한 유형을 묶어 클래스 객체 간의 동..

Do it! 자바 프로그래밍 입문 6장

Do it! 자바 프로그래밍 입문 6장 1. 클래스 내부에서 자신의 주소를 가리키는 예약어를 this라고 합니다. 2. 클래스에 여러 생성자가 오버 로드되어 있을 경우에 하나의 생성자에서 다른 생성자를 호출할 때 this를 사용합니다. 3. 클래스 내부에 선언하는 static 변수는 생성되는 인스턴스마다 만들어지는 것이 아닌 여러 인스턴스가 공유하는 변수입니다. 따라서 클래스에 기반한 유일한 변수라는 의미로 클래스 변수라고도 합니다. 4. 지역 변수는 함수나 메서드 내부에서만 사용할 수 있고 스택 메모리에 생성됩니다. 멤버 변수중 static 예약어를 사용하는 static 데이터 영역 메모리에 생성됩니다. 5. 아침 출근길에 김 씨는 4,000원을 내고 별다방에서 아메리카노를 사 마셨습니다. 이 씨는 콩..

[ C++ ] 객체지향 프로그래밍 C++

[ C++ ] 객체지향 프로그래밍 C++ C++은 C보다 더 엄격한 type-checking을 수행한다. 최대한 상호작용하여 객체지향적으로 프로그래밍하자. 객체 : 연관된 정보들의 묶음. 데이터와 알고리즘을 하나에 넣는 것이다. 이 문제를 풀기 위해서 어떤 객체가 필요한가 가 중요하다. 실생활과 밀접하다. 문제를 크게 보아 상향식 설계로 작은 단위의 필요한 객체들을 만들고 더 큰 단위의 객체를 생성한다. 즉, 낮은 수준의 객체를 이용하여 더 높은 수준의 객체를 작성하는 것이다. 객체지향적으로 객체를 이용하면 외부의 작업에 의해서가 아니라 내부적으로 밥을 지을 수 있어야 한다.. 객체와 객체가 서로 상호작용한다. 많은 함수 호출 메커니즘이 필요하다. 개념 정의 네임스페이스 (JAVA 패키지) : 식별자가 ..

C++ Programming 2021.11.04

명품 자바 연습문제 2장 실습 문제

명품 자바 연습문제 2장 실습 문제 실습 문제 1. Scanner 클래스를 이용하여 원화를 입력받아 달러로 바꾸어 다음 예시와 같이 출력하는 프로그램을 작성하라. $1 = 1100원으로 가정하고 계산하라. package 명품; import java.util.Scanner; public class Samplepro { public static void main(String[] args) { int won; double dollar; Scanner s = new Scanner(System.in); System.out.print("원화를 입력하세요(단위 원)>>"); won = s.nextInt(); dollar = won/1100; System.out.println(won+"원은 "+"$"+dollar+"입..

명품 자바 연습문제 2장

명품 자바 연습문제 2장 1. 자바에서 클래스를 선언할 때 사용하는 자바의 키워드는? public class {} 2. 다음은 10과 20을 더해 합을 출력하려고 작성한 자바 프로그램이지만 오류가 있다. (1) 오류를 찾아내어 고쳐라. public static void main(String [] args) 안에 작성한다. (2) 이 자바 클래스를 저장하는 소스 파일 이름은 무엇인가? SampleProgram.java (3) 명령 창에서 이 프로그램을 컴파일하는 명령은? javac SampleProgram.java (4) 명령 창에서 이 프로그램을 실행하는 명령은? java SampleProgram 3. 다음 중 식별자 사용이 잘못된 경우를 모두 골라라. int % j; double 1 var; 4. 다음..

728x90