전체 글
-
[ch6 자바 객체] 메서드2 ( 오버로딩 & 생성자, this )프로그래밍 언어/JAVA 2022. 6. 16. 14:49
오버로딩(overloading) 메서드도 변수와 마찬가지로 같은 클래스 내에 서로 구별될 수 있어야 하기 때문에 각기 다른 이름을 가져야 한다. 그러나 자바에서는 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메서드를 정의할 수 있다. 이처럼, 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 '메서드 오버로딩(method overloading)' 또는 간단히 '오버로딩(overloading)'이라 한다. 같은 이름의 메서드를 정의한다고 해서 무조건 오버로딩인 것은 아니다. 오버로딩이 성립하기 위해서는 다음과 같은 조건을 만족해야한다. 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라..
-
[ch6 자바 객체] 메서드의 정의와 매개변수, staic프로그래밍 언어/JAVA 2022. 6. 14. 22:11
메서드란? '메서드(method)'는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. 기본적으로 수학의 함수와 유사하며, 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환한다. 예를 들어 제곱근을 구하는 메서드 'Math.sqrt()'는 4.0을 입력하면, 2.0으로 결과를 반환한다. 메서드는 넣을 값(입력)과 반환하는 결과(출력)만 알면 되는 것이다. 그래서 보이지 않는 '블랙박스(black box)'라고도 한다. sqrt()외에도 지금까지 빈번히 사용해온 println()이나 random()과 같은 메서드들 역시 내부적으로 어떻게 동작하는지 몰라도 아무런 어려움은 없다. 메서드는 크게 두 부분, '선언부(header,머리)'와 '구현부(body, 몸통)'로 이루어져 있다. 메서드를..
-
[ch6 자바 객체] 클래스의 정의와 변수의 종류프로그래밍 언어/JAVA 2022. 6. 14. 17:33
클래스의 정의 1 - 데이터와 함수의 결합 클래스는 '객체를 생성하기 위한 틀'이며 '클래스는 속성과 기능으로 정의되어있다.' 이것은 객체지향이론의 관점에서 내린 정의이고, 프로그래밍적인 관점에서 살펴보자. 1. 변수 : 하나의 데이터를 저장하는 공간 2. 배열 : 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간 3. 구조체 : 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간 4. 클래스 : 데이터와 함수의 결합(구조체 + 함수) 그동안 데이터와 함수가 서로 관계없는 것처럼 데이터는 데이터끼리, 함수는 함수끼리 따로 다루어져 왔지만, 사실 함수는 주로 데이터를 가지고 작업을 하기 때문에 많은 경우에 있어서 데이터와 함수는 관계가 깊다. 그래서 자바와 같은 ..
-
[ch6 자바 OOP] 객체지향 언어의 특징프로그래밍 언어/JAVA 2022. 6. 13. 17:36
객체지향 언어란? 객체지향언어는 기존의 프로그래밍언어와 다른 전혀 새로운 것이 아니라, 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다. 이러한 규칙들을 이용해서 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해졌다. 객체지향언어의 주요 특징은 아래와 같다. 1. 코드의 재사용성이 높다 : 새로운 코드를 작성할 때 기존의 코드를 이용해여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. : 코드간의 관계를 이용해서 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높을 프로그래밍을 가능하게 한다. : 제어자와 메서드를 이용해서 데이터를 보호하고 올바를 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작..
-
[ch5 자바 배열] 2차원 배열 알아보기프로그래밍 언어/JAVA 2022. 6. 10. 11:20
2차원 배열의 선언 앞에서 포스팅한 배열은 1차원 배열인데, 2차원 이상의 배열, 다차원(multi-dimensional) 배열도 선언해서 사용할 수 있다. 메모리 용량이 허용하는 한, 차원의 제한은 없지만, 주로 1,2차원 배열이 사용되므로 2차원 배열만 잘 이해하고 나면 3차원 이상의 배열도 어렵지 않게 다룰 수 있다. 2차원 배열을 선언하는 방법은 1차원 배열과 같으나, 대괄호[] 하나가 더 들어간다. 선언 방법 선언 예 타입 [][] 변수이름; int [][] score; 타입 변수이름 [][]; int score [][]; 타입[] 변수이름; int[] score[]; 더보기 3차원 이상의 고차원 배열의 선언은 대괄호[]의 개수를 차원의 수만큼 추가해 주기만 하면 된다. 2차원 배열은 주로 테이..
-
[ch5 자바 배열] String 배열의 생성과 특징프로그래밍 언어/JAVA 2022. 6. 9. 23:04
String 배열의 선언과 생성 배열의 타입이 String인 경우에도 int 배열의 선언과 생성 방법은 다르지 않다. 예를 들어 개의 문자열을 담을 수 있는 배열을 생성하는 문장은 다음과 같다. String [] name = new String[3]; // 3개의 문자열을 담을 수 있는 배열을 생성한다. 3개의 String 타입의 참조변수를 저장하기 위한 공간이 마련되고 참조형 변수의 기본값은 null이므로 각 요소의 값은 null로 초기화된다. 아래의 표는 변수의 타입에 따른 기본값이다. 자료형 기본값 boolean false char '\u0000' byte, short, int 0 long 0L float 0.0f double 0.0d 또는 0.0 참조형 null String 배열의 초기화 초기화 ..
-
[ch5 자바 배열] 선언,생성 등 배열의 기초프로그래밍 언어/JAVA 2022. 6. 9. 21:38
배열이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 '배열(array)'이라고 한다. 많은 양의 데이터를 저장하기 위해서, 그 데이터의 숫자만큼 변수를 선언해야 한다면 매우 혼란스러울 것이다. 이런 경우 배열을 사용하면 많은 양의 데이터를 손쉽게 다룰 수 있다. "배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것" 여기서 중요한 것은 '같은 타입'이어야 한다는 것이며, 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. 한 학급의 시험점수를 저장하고자 할 때가 배열을 사용하기 좋은 예이다. 만약 배열을 사용하지 않는다면 학생 5명의 점수를 저장하기 위해서 아래와 같이 5개의 변수를 선언해야할 것이다. int score1, score2, score3, score4, score5;..
-
[ch4 자바 반복문] break문 & continue문 & 이름 붙은 반복문프로그래밍 언어/JAVA 2022. 6. 8. 16:36
break문 switch문에서 break문을 사용했기에 break의 사용법을 알고 있겠다. 반복문에서도 break문을 사용할 수 있는데, switch문에서 그랬던 것처럼, break문은 자신이 포함된 가장 가까운 반복문을 벗어난다. 주로 if문과 함께 사용되어 특정 조건을 만족할 때 반복문을 벗어나게 한다. ※ 예제 1번 ※ package ch4; public class Ex4_16 { public static void main(String[] args) { int sum=0, i=0; while(true) { if(sum>100) break; ++i; sum+=i; } System.out.println("i = " + i); System.out.println("sum = " + sum); } } 숫자를..