전체 글 (94) 썸네일형 리스트형 [JAVA] 기초문법 - 오버라이딩과 다형성(3) 메서드 오버라이딩 오버로딩: 이름이 같은 메서드가 여러개 있는것(매개변수,반환병은 다를 수 있음.) 오버라이딩: 메서드를 덮어 쓰는 것.(매개변수 반환명 모두 같아야함. 구현부만 다름) 같음 이름의 함 수 이지만, (vip클래스가 custimer클래스를 상속받는 상태) 오버라이딩 된 메서드가 불린 것을 알 수 있다. 업스캐스팅 된 경우에도 오버라이딩 된 메서드가 호출 된 것을 알 수 있다. 즉, 재정의된(오버라이딩 된) 메서드가 호출 된다. ㅡ> 가상 메서드 개념 , 자바는 기본적으로 모든 메서드가 가상메서드이다. add라는 함수를 호출 할때 add(5,3)을 부르는 것과 add(10,2)를 부르는 것은 매개변수는 다르지만, add란 함수의 주소값은 같다.(똑같은 함수를 참조한다. ) 인스턴스 변수와 다.. [JAVA] 기초문법 - 상속과 다형성(2) 접근 제한자 정리 상속에서 클래스 생성 과정 super은 상위클래스를 가르킴. 모든 자바 클래스의 최상위 클래스는 object 클래스이다. 상속에서 메모리 상태 만약에 상위클래스에 private 변수가 있다면, 메모리에 생성은 되지만 하위 클래스에서 접근 할 수가 없는 것. 상위 클래스의 생성자가 디폴트가 아닌 매개변수가 있는 생성자인경우. 예시) 이런경우 하위클래스에서 오류가 발생함. ㅡ> 컴파일러가 자동으로 super()키워드를 삽입해주지만 super()은 디폴트 생성자를 의미하기 때문. 즉, 하위클래스 생성자에서 super(매개변수); 를 명시적으로 호출해야함. super 예약어 상위 클래스로의 묵시적 형 변환(업캐스팅) 모든 하위 클래스는 상위클래스의 일종이다. 따라서 업캐스팅이 가능하다. 하지만.. [JAVA] 기초문법 - 상속과 다형성(1) 상속과 다형성 상속의 목표: 상속을 사용하면 다형성을 구현할 수 있다. 다형성은 객체지향프로그래밍(JAVA)에 가장 큰 장점이다. 유지보수하기 용이하다. 유연한 프로그래밍이 가능하다. 상위 클래스가 하위클래스를 상속한다. 라고 표현 하위클래스는 상속받았다.라고 표현 화살표는 하위클래스 ㅡ> 상위클래스로 표현 상속을 설명할때 재사용이라는 개념이 자주 사용되는데, 재사용은 상속을 정확히 대변하는 것은 아니다. 일반적인 의미, 구체적인 의미를 가진다는 표현이 더 정확하다. 재사용의 개념은 크게 2가지로 나뉜다. 1.상속(is -a 관계) ex) 일반적인 클래스에서 기능의 확장으로 구체적인 클래스를 만들기 위해서 사용. 상속 예시 2.합성(has-a 관계) ex) b클래스에서 a클래스의 변수를 활용하고 싶을때 .. [JAVA] 기초문법 - 디버깅 이클립스에서 자바 디버깅하기 더블클릭으로 breakpoint 설정 디버거 클릭 스위치 클릭 창이 바뀌는데 다시 java창으로 돌아가려면 우측상단 가운데 java 클릭 디버거 버튼을 한 번 더 누르면 창이 하나 더 생기는데 이러면 2개의 스레드가 동작하는 것임. 스레드 하나를 동작하지 않게 하는 방법은 해당 스레드로 가서 빨간 멈춤 버튼 클릭 각 breakpoint에서 F5버튼을 누르면 해당 함수 안으로 들어가겠다 라는 의미 우측에 현재 변수들을 볼 수 있음. F6은 한줄씩 실행. F7은 들어온 곳에서 다시 이전으로 돌아갈때 사용 F8은 다음 breakpoint까지 실행 우측 expressions 창에서 추가적으로 알고 싶은 변수를 추가해서 볼 수 있음. [JAVA] 기초문법 - 배열과 ArrayList(4) arraylist 클래스 컨트롤+시프트+o(영어) 를 누르면 자동으로 import가 된다. F1키를 누르면 해당 클래스가 제공하는 설명을 볼 수 있다. ArrayList 요소 추가 및 출력 예제 list[1] 과 같은 접근은 허용하지 않는다. arraylist는 인덱스 연산자를 제공하지 않는다. 인덱스 연산자는 순수배열에서만 제공한다. 을 명시하지 않을 수도 있지만 참조할때 반드시 형변환을 해줘야한다. 을 명시하지 않으면 오브젝트 타입이다. 타입을 명시하는 것이 일반적이다. ㅡ> 상속에서 자세히 설명 arrayList 클래스 사용하기 [JAVA] 기초문법 - 배열과 ArrayList(3) 다차원 배열 2차원 배열의이름.length는 2차원배열의 행을 의미한다. 배열의이름[0].length는 0번째 행배열의 열(길이)을 의미한다. [JAVA] 기초문법 - 배열과 ArrayList(2) 객체 배열 만들기 객체 배열은 만들어질 객체주소를 담을 공간이다. 객체 배열 만들기 배열 복사 하기 System.arraycopy 메서드는 Sysyem클래스에 있는 static 메서드이다. bookArray1의 멤버변수 값을 바꾸면 bookArray2의 멤버변수 값도 바뀐다 ㅡ> 얕은 복사 ㅡ>주소가 복사되었기 때문에 깊은 복사 하는 방법(주소를 복사하지 않는 법) 향상된 for문 배열 전체를 접근한다면 해당 방법으로 사용가능. 배열 요소를 순차적으로 접근하여 s에 저장하고 출력한다. [JAVA] 기초문법 - 배열과 ArrayList(1) 배열과 ArrayList 배열 ex) 학번이 100개가 필요하면 변수를 100개 선언해야함. 배열을 사용하면 간편함. int자료형 4byte 10개가 메모리에 잡힌모습 즉, 배열은 물리적으로도 논리적으로도 연속되어 있는 자료구조이다. 10은 배열의 길이(length)를 의미한다. 배열의 인덱스 순서는 0부터 시작한다. 즉 길이가 5라면 인덱스는 0~4까지이다. 선언할때는 길이를 명시하고 선언해야한다.(fixed length) 배열은 연속된 자료구조로 중간에 데이터가 생략되면 안된다. 배열이 다 채워졌을때 새로운 값을 추가하려면 기존 배열보다 길이가 긴 배열을 생성해서 기존 배열을 복사해야한다. 자바에서 배열선언하기 배열의 초기화 배열이름.length 를 이용하면 배열의 길이를 구할 수 있다. 초기화 하지.. 이전 1 ··· 5 6 7 8 9 10 11 12 다음