Java 36

객체(Object) - 오버로딩(Overloading)

오버로딩(Overloading) 1. 오버로딩이란? 메소드 오버로딩 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 메소드 오버로딩(Overloading)이라고 한다. 메소드 오버로딩을 통해서 매개값을 다양하게 받아서 필요한 처리할 수 있다. 메소드 오버로딩의 조건은 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다. 매개 변수 이름만 바꾸는 것은 메소드 오버로딩이 아니다. 또한 리턴 타입만 다르고 매개 변수가 동일한 것도 메소드 오버로딩이 아니다. // 오버로딩의 대표적인 예시 System.out.println(1); System.out.println(false); System.out.println('A'); System.out.println("Hello World!"); 2. 오버로딩의..

Java 2022.08.23

객체(Object) - 변수와 메서드

변수와 메서드 1. 선언위치에 따른 변수의 종류 1) 인스턴스 변수 (instance variable) 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다. 인스턴스 변수의 값을 읽어 오거나 저장하기 위해 먼저 인스턴스를 생성해야 한다. 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다. 2) 클래스 변수 (class variable) 클래스 변수를 선언하기 위해 인스턴스변수 앞에 static을 붙이기만 하면 된다. 클래스 변수는 모든 인스턴스가 공통된 저장공간(변수)을 공유하게 된다. 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성의 경우 선언한다. 클래스이름.클래스변수 public을 앞에 붙이면 어디서나 접근할 수 있는 전역변수(global variab..

Java 2022.08.23

객체(Object) - 클래스와 객체

클래스와 객체 1. 클래스와 객체의 정의와 용도 1) 클래스와 객체의 정의와 용도 클래스의 정의 : 객체를 정의해 놓은 것이다. 클래스의 용도 : 객체를 생성하는데 사용된다. 객체의 정의 : 실제로 존재하는 것, 사물 또는 개념 객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름 클래스 객체 제품 설계도 제품 TV 설계도 TV 붕어빵 기계 붕어빵 2. 객체와 인스턴스 클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화(Instantiate)라고 한다. 클래스로부터 메모리에 생성된 객체를 인스턴스(Instance)라고 한다. 객체(Object)는 프로그램에서 구현할 대상으로 이를 구현하기 위한 설계도가 클래스(Class)이고, 클래스로부터 메모리에 생성된 실체가 인스턴스(Instance)이다. ..

Java 2022.08.22

객체(Object) - 객체 지향 언어

객체 지향 언어 1) 객체 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성과 기능을 가지고 다른 것과 식별이 가능한 것을 말한다. (ex. 유형, 무형, 개념 등) 2) 객체 지향 프로그래밍(OOP, Object-Oriented Programming) 프로그램을 개발하는 기법으로 객체들을 만들고 이러한 객체들을 연결해서 프로그램을 완성하는 기법을 객체 지향 프로그래밍이라고 한다. 객체 지향 프로그래밍 특성을 지원하는 언어를 객체 지향 프로그래밍 언어라고 한다. 3) 객체 지향 프로그래밍의 특징 (1) 추상화 추상화는 객체들이 가진 공통의 특성들을 파악하고 불필요한 특성들을 제거하는 과정을 말한다. (2) 캡슐화 캡슐화란 객체의 속성(필드)과 기능(메소드)을 하나로 묶고 실제 구현 ..

Java 2022.08.22

배열(Array) - 다차원 배열

다차원 배열 1. 2차원 배열의 선언과 인덱스 배열의 요소로 다른 배열을 가지는 배열을 2차원 배열이라고 한다. 2차원 배열은 논리적으로 행과 열로 이루어진 표 형태로 존재한다고 생각하면 된다. 2차원 배열은 할당된 공간마다 인덱스 번호 두 개를 갖는다. (앞 번호는 행, 뒤 번호는 열) 2차원 배열의 선언 타입[ ][ ] 변수이름; 타입 변수이름[ ][ ]; 타입[ ] 변수이름[ ]; 2차원 배열의 생성 변수명 = new 타입[행 크기][열 크기]; 타입[ ][ ] 변수명; = new 타입[행 크기][열 크기]; 타입 변수명[ ][ ]; = new 타입[행 크기][열 크기]; int[][] score = new int[4][3]; // 4행 3열의 2차원 배열 score를 생성 2. 2차원 배열의 초기..

Java 2022.08.21

배열(Array) - 배열(Array)이란?

배열(array) 1. 배열(array)이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것. 2. 배열의 선언과 생성 원하는 타입의 변수를 선언하고 변수 또는 타입의 배열임을 의미하는 대괄호[]를 붙이면 된다. 1) 배열의 선언 타입 [] 변수이름; 타입 변수이름[]; 2) 배열의 생성 배열을 선언하는 것은 생성된 배열을 다루기 위한 참조변수를 위한 공간이다. 배열을 생성해야만 값을 저장할 수 있는 공간이 만들어진다. new 타입[배열 크기]; 배열의 선언과 생성을 동시에 진행 타입[] 변수이름 = new 타입[배열 크기]; 타입 변수이름[] = new 타입[배열 크기]; 변수 선언과 배열 선언 // 변수 선언 int num; // 메모리(Stack)에 자료형 만큼의 크기로 값을 (직접) 담을 수..

Java 2022.08.20

조건문(conditional statements) - if & switch

자바 프로그램의 실행 흐름을 개발자가 원하는 방향으로 바꾸어주는 것이 제어문이다. 제어문은 조건식과 중괄호({}) 블록으로 구성되는데 조건식의 결과에 따라 블록 내부의 실행 여부가 결정된다. 조건문 - if, switch 주로 if문이 많이 사용된다. 처리할 경우의 수가 많을 때는 if문보다 switch문이 효율적이지만, switch문은 if문보다 제약이 많다. 1. if문 조건식이 true 일 때 중괄호({}) 블록이 실행되고 false 일 때는 중괄호({}) 블록이 실행되지 않는다. if(조건식) { // 조건식이 참 (true) 일 때 수행될 문장을 적는다. } 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다. 헷갈리는 조건식 조건식 조건식이 참일 경우 str.equals(“yes”) 문자열 ..

Java 2022.08.19

반복문(iteration statements) - for & while & do-while

반목문 - for, while, do-while 반복문은 특정 코드를 반복적으로 실행시키는 구문이다. 1. for문 반복 횟수를 알고 있을 때 적합하다. for(초기화; 조건식; 증감식) { // 반복되는 부분 LOOK FOR // 조건식이 true일 때 수행될 문장들을 적는다. LOOK FOR문 } 1) for문의 구조와 수행순서 초기화 → 조건식 → 수행 될 문장 → 증감식, 조건식이 false이 되면 for문 전체를 빠져나가게 된다. 2) 초기화 반복문에 사용될 변수를 초기화하는 부분이며 처음에 한번만 수행된다. 보통 변수 하나로 for문을 제어하지만, 둘 이상의 변수가 필요할 때는 ‘,’를 구분자로 변수를 초기화하며 두 변수의 타입은 같아야 한다. 3) 조건식 조건식의 값이 true이면 반복을 계..

Java 2022.08.19

연산자(Operator) - 논리 연산자 & 그 외의 연산자

논리 연산자 1. 논리 연산자 &&, ∥, ! && (AND결합) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다. true && true -> true true && false -> false false && true -> false false && false -> false || (OR결합) : 피연산자 중 어느 한쪽만 true이면 true를 결과로 얻는다. true || true -> true true || false -> true false || true -> true false || false -> false 1) 주의할점 x는 10보다 크고, 20보다 작다 → (10 < x) && (x < 20) x는 2의 배수 또는 3의 배수이다 → ((x % 2) == 0) || ((x % ..

Java 2022.08.18

연산자(Operator) - 산술 연산자 & 비교 연산자

산술 연산자 1. 사칙 연산자 +, -, *, / 곱셈, 나눗셈, 나머지 연산자가 덧셈, 뺄셈 연산자보다 우선순위가 높으므로 먼저 처리된다. 피연산자가 정수형인경우, 나누는 수로 0을 사용할 수 없다. 만일 0으로 나눌 경우, 실행 시에 에러가 발생할 것이다. 부동 소수점값이 0.0f, 0.0d로 나누는 것은 가능하지만 그 결과 Infinity(무한대)이다. (주의) 같은 의미의 식이라도 연산의 순서에 따라서 다른 결과를 얻을 수 있다. Math.round() 사용법 Math.round(pi * 1000) / 1000.0 → Math.round(3.141592 * 1000) / 1000.0 → Math.round(3141.592) / 1000.0 → 3142 / 1000.0 → 3.142 2. 나머지 연..

Java 2022.08.17