Java (37) 썸네일형 리스트형 클래스 상속과 인터페이스 사용 목적 정리 상속 > 부모클래스의 멤버를 그대로 상속 받으면서 기능을 추가할수도 있고 기존의 기능을 조금 수정해서 사용할 수 있음 비슷한 특성의 클래스가 있을때 기능의 중복정의를 하지 않고 필드와 메서드를 재사용함으로서 클래스 간결화 할 수 있음 클래스간의 계층적 분류 및 관리가 가능 인터페이스 (핵심은 선언과 구현의 분리) 자바에서는 다중상속을 지원하지 않기 때문에 다중상속을 위해 인터페이스가 나오게 됨 선언을 인터페이스로 함으로써 구현을 뒤로 숨긴다 (=결합도를 낮추기 위함) 클래스간의 계층 구분은 추상클래스 상속을 통해서 해결하고 할 수 있는 기능들은 인터페이스로 구현한다 인터페이스를 상속하면은 전부 구현해야하잖아 근데 추상클래스를 상속하면 일반메서드는 구현 안해도 되고 꼭 구현해야 하는 메서드를 구분지을 수 .. 다형성_추상클래스 / 인터페이스 정리 다형성 : 하나의 객체가 여러가지 타입을 가질 수 있는 것 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있음 * 참조변수의 다형성 : 참조변수가 사용할 수 있는 멤버의 개수가 실제 인스턴스 멤버 개수보다 같거나 적어야 참조 가능 부모 -> 자식 참조 가능 / 자식 -> 부모 참조 불가 이유는 자식 타입의 참조 변수가 사용할 수 있는 멤버 개수 > 실제 인스턴스(부모타입)의 멤버 개수보다 많기 때문 자식 클래스에서 사용할 수 있는 멤버의 개수는 언제나 부모 클래스와 같거나 많음(상속을 통해 확장되기 때문) 참조변수 타입변환 서로 상속 관계에 있는 클래스 사이에만 타입변환 가능 자식 클래스 타입에서 부모 클래스 타입으로의 변환은 생략 가능 (부모 -> 자식 타입 변환은 반드시 명.. 새싹체험_java_1023 1023 내부클래스(= 중첩클래스 = 클래스 내부에 선언한 클래스) :: 클래스가 여러 클래스와 관계를 맺는 경우에는 독립적으로 선언하는 것이 좋지만 특정 클래스와 관계를 맺는 경우에는 클래스 내부에 선언하는 것이 좋음 내부클래스에서 외부클래스의 멤버를 쉽게 접근할 수 있음/ 코드의 복잡성을 줄일 수 있음 내부클래스는 선언 위치에 따라서 두가지로 분류되는데 클래스의 멤버로 선언되는 클래스를 멤버 클래스라고 하고 메소드 내부에 선언되는 클래스를 로컬클래스라고 함 멤버클래스는 클래스나 객체가 사용 중이라면 재사용이 가능하다 / 로컬클래스는 메소드를 실행할때만 사용되고 종료되면 사라짐 멤버클래스 (인스턴스 멤버 클래스 / 정적 멤버 클래스) 인스턴스 멤버 클래스는 인스턴스 필드와 인스턴스 메소드만 선언 가능하.. 새싹체험_java_1022 1022 생성자 :: new 연산자로부터 클래스 객체를 생성할때 호출되어 객체의 초기화 역할을 함 자바의 클래스는 생성자가 반드시 존재해야 함/ 클래스를 만들때 생성자 선언을 생략했다면 자바 컴파일러는 내용이 비어있는 기본 생성자를 자동으로 만들어 줌 int[] array = {1,2,3}; 생성자는 리턴타입이 없고(리턴 값이 없는게 아니라 리턴 타입 자체가 없다는 의미) 클래스 이름과 동일함 필드를 선언할때 초기값을 주면 해당 클래스로 부터 생성되는 객체들은 모두 같은 값을 갖게 됨 생성자에서 매개변수로 매개값을 받아 필드 초기화를 하면 필드의 데이터를 (외부에서 제공되는)다양한 데이터 값으로 초기화 할 수 있음 객체 초기화란 필드를 초기화 하거나 메서드를 호출해서 객체를 사용할 준비를 하는 것 생성자.. 새싹체험_java_1016 1016 메서드 :: 객체의 기능 역할 public void run(); public void walk(); 소스파일의 이름은 public class 이름과 일치해야함 하나의 소스파일에는 하나의 public class 만 있어야 함 > 보통 하나의 소스파일에는 하나의 클래스만 작성하는 것이 좋음 // 클래스 안에 구성 멤버 :: 필드 생성자 메서드 // 필드란 객체의 속성을 나타냄 // class에 선언된 변수를 필드라고 함 class Person{ String name; int age; // 생성자 (객체를 생성할 때 초기화 역할) // 생성자는 class 이름과 같은 이름이다 public Person() {}; } Person person = new Person(); // class타입 class변수.. 새싹체험_java_1015 1015 반복문(for문) > 적은양의 코드로 반복되는 코드를 작성할 수 있음 (편리함/유지보수용이) 초기화식 > [조건식 > 실행문 > 증감식 >조건식 > 실행문 > 증감식] ....반복 후 조건 false시 반복 종료 *소스파일을 저장하면 이클립스는 자동으로 바이트 파일을 만들어줌 굳이 화면 보지 않아도 되는 실습은 소리만 듣고 연습하기 * 2,4,6,8,10 출력 예제 for(int i = 2; i num[j]) { tmp = num[i]; num[i] = num[j]; num[j] = tmp; } } System.out.println(num[i]); } *** 작동X >>> 모든 IDX의 값끼리 서로 비교할 수 없기 때문 for(int i = 0; i < num.length-1; i++) { if.. 새싹체험_java_1009 ** 주말 java 과정 강의 내용 기록 _두번째 수업 키보드로 입력받기 system.in int keycode = system.in.read(); 시스템이 가지고 있는 입력장치에서 키코드를 읽어오는 것 (아스키코드 값 == '키코드 값' 이 대입됨) 버퍼라는 임시저장소 안에 키코드 값이 저장됨 임시저장소에 저장된 값을 read() 메서드를 통해 바이트 단위로 읽는다 키코드 >> 숫자 0 :: 48 / A :: 65 / Enter :: 13,10 등 키코드를 읽을때 (입력을 받을때에는) 콘솔창에서 입력을 받고 입력한 내용을 읽어올텐데 system.in 은 콘솔창에 입력한 내용을 읽어올 수 있음 입력받기전에 (콘솔창을 읽어오기전에) 콘솔뷰를 열어줌 int keyCode = System.in.read(); .. 새싹체험_java_1008 ** 주말 java 과정 강의 내용 기록 _첫번째 수업 오늘부터 주말반 java 기초 과정을 수강하게 되어 강사님의 수업 내용을 모두 기록해보기로 함 한달 과정으로 8일 안에 아래의 모든 과정이 진행 될 예정이라 다소 진도가 빠르겠지만 회사 업무에 더욱 도움이 되고 나의 실력향상을 위해 열심히 정리해볼 예정 ! [JAVA 전체 과정] 자바개요 > 언어기본구조 > 자료형 > 연산자 > 제어문 > 배열 > 메소드 >객체와 클래스 > 중첩클래스 > 상속 및 추상화 > API > 입출력 객체와 클래스부터는 다른 언어와 차이점이 있음 배열까지는 다른 언어와 비슷함 배열까지는 절차지향형 객체부터는 객체지향 파트 메소드는 다른 언어로 치면 함수라고 할 수 있음 함수는 독립적이나 메소드는 종속적임 **** 자바는 OO.. 이전 1 2 3 4 5 다음 목록 더보기