1. 상속(inheritance) 1.1 상속의 정의와 장점 적은 양의 코드로 새로운 클래스 작성 가능, 추가 및 변경이 용이하다 상속받는법 class Parent{} class Child extends Parent{ //... } 조상 클래스 - 부모(parent) 클래스, 상위(super) 클래스, 기반(base) 클래스 자손 클래스 - 자식(child) 클래스, 하위(sub) 클래스, 파생된(derived) 클래스 상속계층도 클래스 Parent 와 Child의 다이어그램 Parent 클래스에 age라는 정수형 멤버변수를 추가한다면? class Parent{ int age; } class Child extends Parent {} → 자손 클래스는 조상 클래스의 멤버를 모두 상속받기 때문에, Chil..
오버로딩(overloading) 4.1 오버로딩이란? 메서드도 변수와 마찬가지로 같은 클래스 내에서 구별될 수 있어야 하기에 다른 이름을 가져야 한다. 4.2 오버로딩의 조건 매서드의 이름이 같아도 매개변수가 다르면 서로 구별될 수 있다는 특징 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다 이유: 우리가 코딩을 하고 입력을 하면 컴파일러가 매개변수의 타입, 개수로 함수를 구분하는데, 리턴 타입으로는 우리가 어떤 메서드를 불러오는지 컴퓨터는 알지 못한다. 4.3 오버로딩의 예 가장 대표적인 것은 println 메서드이다. 괄호 안에 값만 지정해주면 출력에 문제가 없어지만, 매개변수로 지정하는 값의 타입에 따라서 호출되는 println 메서드가 달라진다. void println() void p..
3. 변수와 메서드 3.1 선언위치에 따른변수의 종류 class Variables { int iv; // 인스턴수 변수 static cv; // 클래스 변수 void method() // 메서드 영역 { int lv = 0; //지역변수 } } 변수의 종류와 특징 변수의 종류 선언 위치 생성시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갔을 때 인스턴수 변수 클래스 영역 인스턴스가 생성되었을 때 지역 변수 클래스 영역 이외의 영역 (메서드,생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 인스턴스 변수(instance variable) 클래그 영역에 선언, 클래스의 인스턴스를 생성할 때 만들어짐 인스턴스 변수의 값을 읽거나 저장하기 위해서는 먼저 인스턴스를 생성해야 한다 인스턴스는 독립적인 ..
1. 객체지향언어 1.1 객체지향언어의 역사 과학자들의 모의실험을 위해 실제 세계와 유사한 가상 세계를 컴퓨터 속에 구현하고자 하는 노력 기본 개념 : 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다. 초창기에는 주목받지 못했으나, 1995년 자바의 발표와 1990년대 인터넷의 발전과 유행 1.2 객체지향언어 객체지향의 개념을 이해한 것과 객체지향적인 코드를 작성하는 것은 다르다. 처음부터 거시적으로 객체지향적으로 프로그래밍하는 것보단, 기능을 먼저 완성해보고 점차 개선해 나가는 것이 좋다. 2. 클래스와 객체 2.1 클래스와 객체의 정의와 용도 프로그래밍에서 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 뜻한다. 예시 TV 설계도(클래스) TV (객체) ..
1. 배열 (array) 1.1 배열(array)이란? int score1, score2, score3, score4; -> int[] score = new int[5]; 값을 저장할 수 있는 공간은 score[0]부터 score[4]까지 5개 score 자체는 값을 저장할 수 있는 공간이 아닌 참조변수임 1.2 배열의 선언과 생성 선언 방법 선언 예 타입[] 변수 이름; int[] score; String[] name; 타입 변수이름[]; int score[]; String name[] → 두 가지 방법이 있으나 ‘타입[] 변수이름’ 추천 int[] score; score = new int[5]; //이 선언 방법을 보통 아래와 같이 줄인다. int[] score = new int[5] 1.3 배열의 ..
1. 조건문 - if, switch 조건문은 조건식과 문장을 포함하는 블럭{}으로 구성되어 있으며, 조건식의 결과에 따라 실행할 문장이 달라져 프로그램의 실행흐름을 변경할 수 있다. if → 처리할 경우가 적은 경우 switch → 처리할 경우가 많은 경우 but, if문보다 제약이 많음 1.1 if문 if (조건식) { //조건식이 (true)일 때 수행될 문장들을 적는다. } 블럭{} if(score > 60) { } //OR 둘 중에 취향에 맞는 것을 사용하면 된다. if (score > 60){ } if(score > 60) System.out.println("합격입니다); // 블럭 내의 문장이 하나 뿐일 떄는 둘 중에 하나와 같이 사용 할 ㅜㅅ 있다. if(score > 60) System.o..
1. 변수 1.1 변수란? 💡 “변수란, 단 하나의 값을 저장하 수 있는 메모리 공간” 프로그래밍 언어에서 변수란, 값을 저장할 수 있는 메모리상의 공간 하나의 변수에 단 하나의 값만 저장할 수 있음, 새로운 값을 저장하면 기존의 값은 사라짐 1.2 변수의 선언과 초기화 int age; // age 라는 이름의 변수 선언 변수 타입 - 변수에 저장될 값이 어떤 타입인지 지정 정수형, 실수형, 문자형 등 변수 이름 - 변수에 붙인 이름 같은 이름의 변수가 여러 개 존재해서는 안됨 변수의 초기화 변수를 사용하기 전에 처음으로 값을 저장하는 것 int age = 25; // 변수 age를 선언하고 25로 초기화한다. 변수를 선언한 이후 초기화하지 않으면 메모리의 낭비가 발생할 수 있다. int a, b; in..