본문 바로가기

Dev. Java

(76)
[자바 기본기] 상속 1. 상속(inheritance) 상속이란?- 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것.- 두 클래스를 조상과 자손으로 관계를 맺어주는 것.- 자손은 조상의 모든 멤버를 상속받는다. ( 생성자 , 초기화블럭 제외)- 자손의 멤버개수는 조상보다 적을 수 없다. ( 같거나 많다.) 상속의 장점 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 용이함 즉, 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여함. 2. 클래스간의 관계 상속관계 (inheritance) - 공통부분은 조상에서 관리하고 개별부분은 자손에서 관리한다.- 조상의 변경은 자손에 영향을 미치지만, 자손의 변경은 조상에 아무런..
문자열 입력과 출력 (Scanner) 문자열 입력과 출력 (Scanner) 처음 프로그래밍 언어를 공부할 때, C 언어를 많이 공부할 것이다. 그때 가장 먼저 배우는 것이 printf() 이고, 문자열을 입력받는 scanf() 이다. 알고리즘을 공부할때도 printf() 와 scanf() 를 많이 사용한다. 그럼 자바에서는 C 언어의 printf() 와 scanf()는 무엇일까? 문자열을 출력하는 명령은 System.out.println(); 을 사용하고, 문자열을 키보드로 입력받을 때는 System.in 을 사용한다. 하지만 입력받은 문자열을 읽고 처리하기 위해서 Scanner 클래스에 담아서 처리한다. Scanner 클래스는 표준 Java 클래스 라이브러리에 속하며, 다양한 타입의 입력 값들을 읽어들이기 위한 편리한 방법을 제공한다. S..
[자바 기본기] 변수의 초기화 1. 변수의 초기화 - 변수를 선언하고 처음으로 값을 저장하는 것- 멤버변수 와 배열은 각 타입의 기본값으로 자동초기화되므로 초기화를 생략가능 - 지역변수는 사용전에 꼭!!! 초기화를 해주어야한다. Class InitTest { int x; // 인스턴스 변수 int y = x; // 인스턴스 변수 void method1() { int i; // 지역변수 int j = i; // 컴파일 에러!!! 지역변수를 초기화 없이 사용했음. } } 2. 멤버변수의 초기화 멤버변수의 초기화 방법1. 명시적 초기화 ( explicit initialization) class Car { int door = 4; // 기본형 변수의 초기화 Engine e = new Engine () ; // 참조형 변수의 초기화 } 2. ..
public static void main(String[] args) 의미는? public static void main(String[] args)의 의미란? - 메인 메서드는 진입점(Entry Point)을 뜻한다. - 그러므로 메인 메서드의 접근자는 항상 public 이어야 한다. - 그리고 메인 메서드는 항상 정적이어야 한다. - 클래스는 메모리에 로딩된 다음에 사용이 가능하다. - static이 붙은 클래스나 메서드, 변수는 컴파일시 자동으로 로딩된다. - 메인 메서드는 클래스 로딩 없이 호출할 수 있어야 한다. - 그렇기때문에 static을 사용한다. - void는 리턴타입이 없다는 뜻이다. - 메인 메서드는 Entry Point이면서 프로그램의 끝이기도 하다. - 메인으로 시작해서 메인이 끝나면 그 프로그램도 끝이다. - 그러므로 리턴하는 값 자체가 불필요하다. - 프로..
[자바 기본기] 3. 메서드 오버로딩 3.1 메서드 오버로딩이란?자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼,한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩 또는 간단히 오버로딩이라 한다. 3.2 오버로딩의 조건 - 메서드 이름이 같아야 한다. - 매개변수의 개수 또는 타입이 달라야 한다. - 매개변수는 같고 리턴타입이 다른 경우는 오버로딩이 성림되지 않는다. (리턴타입은 오버로딩 구현에 아무런 영향을 주지 못한다.) 3.3 오버로딩을 하는 이유는? - 기억하기도 쉽고, 이름도 짧게 할 수 있어서 오류의 가능성을 많이 줄일 수 있다. - 메서드의 이름만 보고도 ' 이 메서들은 이름..
[자바 기본기] 2. 변수와 메서드(2) 지난 포스팅에 이어 메서드 관련 내용을 정리한다. 2.3 메서드정의 메서드는 어떤 작업을 수행하기 위한 명령문의 집합이다. 주로 어떤 값을 입력받아서 처리하고 그 결과를 돌려준다. 경우에 따라서는 입력받는 값이 없을 수도 있고(void), 결과를 반환하지 않을 수도 있다. 장점 반복적인 코드를 줄이고 코드를 한 곳에서만 관리하면 되므로 유지보수가 편리 작성지침 - 하나의 메서드는 한 가지 기능만 수행하도록 작성하는 것이 좋다. - 반복적으로 수행되어야 하는 여러 문장을 하나의 메서드로 정의해 놓으면 좋다. - 관련된 여려 문장을 하나의 메서드로 만들어 놓는 것이 좋다. 작성방법 메서드는 위의 그림과 같이 선언분와 구현부로 나눌 수 있다. 선언부에는 리턴타입, 메서드 이름, 그리고 괄호()안에 매개변수를 ..
[자바 기본기] 2. 변수와 메서드(1) 2. 변수와 메서드2.1 변수의 종류자바에서 변수는 크게 멤버변수와 지역변수로 나눌 수 있으며, 선언 위치에 따라 클래스 변수, 인스턴스 변수, 지역변수로 분류된다. 멤버 변수 중 static이 붙은 것은 클래스 변수, 붙지 않은 것은 인스턴스 변 수이다. 다음 그림과 같이 나타낼 수 있다. * 변수별 생성시기 - 클래스 변수 : 클래스가 메모리에 올라갈 때 - 인스턴스 변수 : 인스턴스가 생성 되었을 때 - 지역 변수 : 변수 선언문이 수행 되었을 때 cf. 클래스 변수는 인스턴스를 생성하지 않고도 언제라도 바로 사용할 수 있는 특징이 있으며, '클래스 이름.클래스 변수' 와 같은 형식으 로 사용한다. ex ) Variables.cv 2.2 클래스 변수와 인스턴스 변수의 차이 클래수 변수와 인스턴스 변..
[자바 기본기] 1. 클래스와 객체 1. 클래스와 객체1.1 클래스와 객체의 정의 및 용도ⓐ 클래스 - 정의 : 클래스란 객체를 정의해 놓은 것이다. - 용도 : 클래스는 객체를 생성하는데 사용된다. ⓑ 객체 - 정의 : 실제로 존재하는 것, 사물 또는 개념 - 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 ▶ 클래스는 단지 객체를 생성하는데 사용될 뿐, 객체 그 자체는 아니다. 객체를 사용하기 위해서는 먼저 클래스로부터 객체를 생성하는 과정이 선행되어야 한다. 1.2 객체와 인스턴스 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며, 인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미를 갖고 있다. 1.3 객체의 구성요소 - 속성과 기능 객체는 속성과 기능, 두 종류의 구성요소로 이루어져 있으며,..