전체 글

Book/자바의 정석

[자바의 정석] Chapter 7. 객체지향 프로그래밍 II - 오버라이딩, 접근 제어자, 다형성

오버라이딩 : 상위 클래스에게 상속받은 메서드를 그대로 사용하기도 하지만, 하위 클래스 자신에 맞게 변경하는 것이다. 오버라이딩 조건 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 이름이 같아야 한다. 매개변수가 같아야 한다. 반환타입이 같아야 한다. 한마디로 요약하자면 선언부가 완전히 일치해야 한다. 다만 접근 제어와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다. 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 있다. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 있다. super super는 자손 클래스에서 상위클래스로부터 상속받은 멤버를 참조하는 데 사용하는 참조 변수이다. super() super()는 상위클래스의 생성자를 호출하는데 사용된다. stat..

Book/자바의 정석

[자바의 정석] Chapter 6. 객체지향 프로그래밍 I - 오버로딩, 생성자

오버로딩 : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 오버로딩의 조건 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 가장 대표적인 오버로딩 ex) println() 오버로딩의 장점 이름만 보고도 메서드들의 기능을 예측 가능 메서드의 이름 절약! 생성자 : 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드 연산자 new가 인스턴스를 생성하는 것이지, 생성자가 인스턴스를 생성하는 것이 아니다. 생성자는 그저 인스턴스 변수들의 초기화에 사용되는 조금 특별한 메서드일 뿐이다. 생성자의 조건 생성자의 이름은 클래스의 이름과 같아야 한다. 생성자는 리턴 값이 없다. 기본 생성자 기본 생성자가 컴파일러에 의해..

Book/자바의 정석

[자바의 정석] Chapter 6. 객체지향 프로그래밍 I - 클래스, 인스턴스, 메서드

객체지향언어 객체지향 언어의 주요 특징 코드의 재사용성이 높다. → 기존의 코드 재사용 코드의 관리가 용이하다. → 적은 노력으로 쉽게 코드 변경 가능 신뢰성이 높은 프로그래밍을 가능하게 한다. → 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 한다. 너무 객체지향개념에 얽매여서 고민하기보다는 일단 프로그램을 기능적으로 완성한 다음 어떻게 하면 보다 객체지향적으로 코드를 개선할 수 있을지를 고민하여 점차 개선해 나가는 것이 좋다. 우아한 프리코스 1주차 미션인 숫자야구게임을 풀 때... 시작부터 객체지향적으로 짜고 싶어 헤맸던 기억이 떠올랐다.. 앞으로 기능을 먼저 구현한 후 개선해야겠다. 클래스와 객체 클래스 : 객체를 정의해놓은 것 객체 : 객체의 설계도 또는 틀 객체의 구성 요..

Book/자바의 정석

[자바의 정석] Chapter 5. String 배열, 다차원 배열

String 배열 String 배열의 선언과 생성 String[] name = new String[3]; 배열의 타입이 String인 경우에도 int 배열의 선언 및 생성 방법과 다르지 않다. 하지만 참조형 변수(String)의 기본값은 null이기 때문에 각 요소의 값이 null로 초기화된다. String 배열의 초기화 String[] name = new String[]{"Kim", "Yi", "Park"} 또는 인덱스를 지정하여 하나하나씩 초기화해주는 방법이 있다. char 배열과 String 클래스 String 클래스는 char 배열에 기능을 추가한 것이다. 객체지향언어인 자바에서는 char 배열과 그에 관련된 기능들을 함께 묶어서 클래스에 저장한다. 객체지향개념이 나오기 이전의 언어들은 데이터와 ..

Book/자바의 정석

[자바의 정석] Chapter 5. 배열(Array)

열심히 스프링 기초 책을 읽고 있는데 자바의 기초 문법에서 헷갈려하는 나를 보고 충격받았다.(진심으로) 그래서 더 늦기 전에 기초를 회독하고자 자바의 정석을 학교 도서관에서 빌렸다. 배열 배열(array)이란? int[] score = new int[5]; : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 (ex. 시험 성적) 서로 다른 타입의 변수들로 구성한 배열은 만들 수 없다. 여기서 중요한 것은 변수 score가 배열을 다루는데 필요한 참조변수일뿐 값을 저장하기 위한 공간이 아니라는 것이다. 배열의 선언과 생성 int[] score; // 배열을 다루기 위한 참조변수 선언 socre = new 타입[길이]; // 실제 저장공간을 생성 int[] score = new int[5]; // 물론 ..

yo0oni
기록 기록 기록