본문 바로가기

분류 전체보기

(223)
자바 메소드 오버로딩(메서드 오버로딩, Method Overloading), 자바 가변인자(Varargs, Variable Argument List) 메소드 오버로딩(Method overloading)에 대해서 알아보자. 오버로딩(Overloading) 자바에서 한 클래스 내에서 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다. 한 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것을 "메소드 오버로딩(Method Overloading)" 또는 간단히 "오버로딩(Overloading)"이라 한다. 메소드 오버로딩 구분 요건은 아래와 같다. 메소드 이름이 같아야 한다. 매개변수의 개수, 타입 또는 순서가 달라야 한다. 반환 타입은 관계 없다. 위의 조건을 만족시키지 못하는 메소드는 중복 정의로 간주되어 컴파일 시에 에러가 발생한다. 그리고 오버로딩된 메소드..
자바 접근 제어자 - private (동일 클래스 내에서만 사용 가능), public, default, private, 캡슐화 자바 접근 제어자 private에 대해서 알아보자. 자바 접근 제어자에는 public, protected, (default), private가 있다. 접근 범위는 public > protected > (default) > private 순이며, public은 전체적으로 접근이 가능하며, protected는 동일 클래스, 동일 패키지, 다른패키지의 자손클래스에서 접근이 가능, (default)는 동일 클래스, 동일 패키지 내에서만 접근 가능, private는 클래스 내에서만 접근이 가능하다. 접근제어자가 default라는 것은 아무런 접근 제어자도 붙이지 않는것을 의미한다. 추가로 아래처럼 사용이 가능하다. 클래스 – public, default, abstract, final ​ 필드 – private, ..
자바 기본형 매개변수/ 참조형 매개변수 / 참조형 반환타입 자바 기본형 매개변수, 참조형 매개변수, 참조형 반환타입에 대해서 알아보자. 메소드를 호출할 때 매개변수로 지정한 값을 메소드의 매개변수에 복사해서 넘겨준다. 매개변수의 타입에는 기본형 매개변수와 참조형 매개변수가 있다. 기본형 매개변수 매개변수의 타입이 기본형(primitive type)일 때는 기본형 값이 복사된다. 변수의 값을 읽기만 할 수 있다.(read only) vm.change메소드가 호출되면서 x가 change메소드의 매개변수 x에 복사된다. change 메소드에서는 x를 1033으로 변경한다. change메소드가 종료되면서 1033으로 변경된 매개변수 x는 스택에서 제거되므로 해당 메소드를 호출 후에도 x의 값은 8인걸 볼 수 있다. 즉, 원본이 아닌 복사본이 변경된 것이라 원본에는 아무..
자바 메소드(Method) - 메소드 선언 / 메소드의 선언부 / 메소드의 구현부/ 지역변수/ 메소드의 호출 자바 메소드에 대해서 알아보자. 메소드(Method) 메소드는 특정 작업을 수행하는 일련의 문장들을 하나로 묶은 것이다. 어떤 값을 입력하면 이 값으로 작업을 수행해서 결과를 반환한다. 메소드는 입력값 또는 출력값(결과값)이 없을 수도 있으며, 심지어 입력값 및 출력값이 모두 없을 수도 있다. 메소드 정의 메소드는 크게 선언부(header)와 구현부(body)로 이루어져 있으며, 메소드를 정의한다는 것은 선언부와 구현부를 작성하는 것으로 뜻하며 아래와 같다. 반환타입 메소드이름 (타입 변수명, 타입 변수명, ...) >> 선언부 (header) { //메소드 호출시 수행될 코드 } >> 구현부 (body) ex) int add(int a, int b) { int result = a+b; return re..
자바 클래스와 객체 - 객체지향 언어/ 객체 속성과 기능/ 객체와 인스턴스/ 객체의 생성과 사용 자바 클래스와 객체에 대해서 알아보자. 그 전에, 객체지향 언어가 무엇인가에 대해서 다시 정의해 보자. 객체지향 언어 객체지향언어는 기존의 프로그래밍 언어와 다른 새로운 것이 아니라, 기존의 프로그래밍 언어에 몇 가지 새로운 규칙을 추가한 발전된 형태의 것이다. c언어가 절차지향 언어라고 하면, java, c++등은 객체지향 언어이다. 객체지향언어와 절차지향언어의 차이점은 클래스와 객체의 유무이다. 절차지향은 코드를 단순히 순차적으로만 실행하는 반면, 객체지향은 객체 생성을 위해 객체의 설계도(클래스)를 만드는 방식으로 순서가 정해진 객체를 먼저 처리하는 방식이다. 예를들어, 2+3*4를 절차지향 언어와 객체지향 언어가 계산을 했을 때, 절차지향은 순차적으로 계산해 (2+3)*4로 24가 계산되며, 절차..
자바 다차원 배열 - 2차원 배열 (이차원 배열) 선언 및 생성/ 배열 초기화/ 배열 인덱스/ 배열 길이/ 배열 출력 자바 다차원 배열인 2차원 배열에 대해서 알아보자. 2차원 배열(이차원 배열) 2차원 이상의 배열을 다차원 배열이라고 하며, 메모리 용량이 허용하는 한 차원의 제한은 없지만 주로 1, 2차원 배열이 사용되므로 2차원 배열은 1차원 배열에서 대괄호([ ])가 하나 더 추가된다. 주로 테이블 형태의 데이터를 담는데 사용되며, n행 m열의 데이터를 담기 위한 배열이다. 2차원 배열 선언 및 생성 2행 3열의 데이터를 담기 위한 배열을 생성하려면 아래와 같이 작성한다. ex) int[ ][ ] score = new int[2][3]; // 2행 3열의 2차원 배열 생성. 위의 배열을 생성하면, 2행 3열의 데이터로 6개의 int값을 저장할 수 있는 공간이 생긴다. 2차원 배열 초기화 2차원 배열도 1차원 배열과..
자바 배열 선언 및 생성/ 배열 초기화 / 배열 인덱스 / 배열 길이 / 배열 출력 자바의 배열에 대해서 알아보자. 배열 배열이란 동일한 타입의 여러개의 자료(변수)를 한꺼번에 저장하기 위해서 사용하는 하나의 묶음이라고 할 수 있다. 여기서 중요한 점은 '같은 타입'이어야 하며 서로 다른 타입의 변수들로는 배열을 만들 수 없다. 배열은 고정된 크기이며, 변수와 달리 각 저장공간이 0부터 연속적으로 배치되어 있다. 배열 선언 및 생성 배열을 선언하는 방법은 원하는 타입의 변수를 선언하고 해당 변수가 배열임을 의미하는 대괄호([ ])를 붙이면 된다. ex) 타입[ ] 변수명 ; >> int[ ] score; // 배열을 다루기 위한 참조변수 선언 배열을 생성한 후에는 배열을 생성해야한다. 배열을 생성해야만 값을 저장할 수 있는 공간이 만들어진다. 배열을 생성하려면 연산자'new'키워드로 배..
자바 보조 제어문 - break 문, continue문 +레이블 자바의 보조 제어문인 break문, continue문에 대해서 알아보자. 추가로 각각의 보조 제어문과 레이블을 같이 사용했을 때에 대해서도 알아보자. break문+레이블 switch문에서 자주 쓰는 break문은 다른 반복문에서도 사용되며, 반복문 내에서 break문을 만나면 break문이 포함된 가장 가까운 반복문을 벗어난다. 위의 예제를 보면, for문은 i가 1~10일 동안 괄호 안의 문장이 반복되는데, if문 조건에서 i를 3으로 나눴을 때 나머지가 0(3의배수)이 되면 break문을 만나 for문을 벗어나게 되므로 출력되는 값은 1,2 이다. 위의 예제를 보면, 이중 for문으로 a=1일 때, i가 1~5동안 inner for문 문장이 반복되는데 안의 if문 조건에서 i를 3으로 나눴을 때 나머..