Java 14

자바(Java) - 객체지향 프로그래밍 2-3(Object - oriented Programming)

추상 클래스(abstract class) 클래스를 설계도에 비유한다면 추상 클래스는 미완성 설계도에 비유할 수 있다. 단어 뜻 그대로 완성되지 못한 채로 남겨진 설계도를 말하는데, 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 메서드(추상 메서드)를 포함하고 있다는 의미이다. 미완성 설계도로 완성된 제품을 만들 수 없듯이, 추상 클래스로 인스턴스는 생성할 수 없다. 추상 클래스는 상속을 통해서 자손 클래스는 상속을 통해서 자손 클래스에 의해서만 완성될 수 있다. 추상 클래스 : 인스턴스 생성불가. 추상 메서드를 포함하고 있는 클래스 추상 클래스는 그 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는 데에 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다. 새..

Java 2023.04.05

자바(Java) - 객체지향 프로그래밍 2-2(Object - oriented Programming)

import문 Java에서 import문은 다른 패키지에 속하는 클래스나 인터페이스를 현재 소스 파일에서 사용할 수 있도록 가져오는 기능을 한다. import문은 클래스의 전체 이름(패키지 이름과 클래스 이름)을 사용하지 않고 클래스 이름만으로 해당 클래스를 사용할 수 있게 한다. Java에서는 패키지 이름과 클래스 이름이 중복되지 않는 한, 패키지 이름을 생략할 수 있다. 이 경우 클래스 이름만을 사용하여 해당 클래스를 찾게 된다. 예를 들어, java.util 패키지에 속한 Arrays 클래스를 사용하려면 다음과 같이 import문을 작성한다. import java.util.Arrays; //또는 import java.util.*; 위의 코드에서 import java.util.Arrays; 문장을 작..

Java 2023.04.04

자바(Java) - 객체지향 프로그래밍 2-1(Object - oriented Programming)

상속 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 자바에서 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 쓰는 것이다. 예를 들어 새로 작성하려는 클래스의 이름이 Child이고 상속받고자 하는 기존 클래스의 이름이 Praent라면 다음과 같이 하면 된다. class Parent {} class Child extends Parent { //... } 이 두 클래스는 서로 상속관계에 있다고 하며, 상속해 주는 클래스를 '조상 클래스'라 하고, 상속받는 클래스를 '자손 클래스'라 한다. 프로그램이 커질수록 클래스간의 관계가 복잡해지는데, 이때 아래와 같은 그림으로 표현하면 클래스 간의 관계를 보다 쉽게 이해할 수..

Java 2023.03.18

자바(Java) - 객체지향 프로그래밍 1-2(Object - oriented Programming)

기본형 매개변수, 참조형 매개변수 자바에서는 메서드를 호출할 때 매개변수로 지정한 값을 메서드의 매개변수에 복사해서 넘겨준다. 매개변수의 타입이 기본형일 때는 기본형 값이 복사되겠지만, 참조형이면 인스턴스의 값이 복사된다. 메서드의 매개변수를 기본형으로 선언하면 단순히 저장된 값만 얻지만, 참조형으로 선언하면 값이 저장되는 곳의 주소를 알 수 있기 때문에 값을 읽어오는 것은 물론 값을 변경하는 것도 가능하다. 기본형 매개변수 : 변수의 값을 읽기만 할 수 있다. 참조형 매개변수 : 변수의 값을 읽고 변경할 수 있다. 참조형 반환타입 매개변수 뿐만 아니라 반환타입도 참조형이 될 수 있다. 반환타입이 참조형이라는 것은 반환 하는 값의 타입이 참조형이라는 얘기이다. 모든 참조형 타입의 값은 '객체의 주소'이므..

Java 2023.03.12

자바(Java) - 객체지향 프로그래밍 1-1(Object - oriented Programming)

객체지향 언어의 주요 특징은 1. 코드의 재사용성이 높다. 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있다. 2. 코드의 관리가 용이하다. 코드간의 관계를 이용하여 적은 노력으로 쉽게 코드를 변경할 수 있다. 3. 신뢰성이 높은 프로그래밍을 가능하게 한다. 제어자와 메서드를 이용해서 데이터를 보호하고 올바른 값을 유지하도록 하며, 코드의 중복을 제거하여 코드의 불일치로 인한 오작동을 방지할 수 있다. 클래스와 객체 클래스란 '객체를 정의해놓은 것.' 또는 '객체의 설계도 또는 틀'이라고 정의할 수 있다. 클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성된다. 클래스의 정의 : 객체를 정의해 놓은 것 클래스의 용도 : 객체를 생성하는데 사용 객체의 정의 : 실제로..

Java 2023.03.11

자바(Java) - 배열(Array)

배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다. 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다. 변수 대신 배열을 이용하면 변수의 선언과 달리 다뤄야 할 데이터의 수가 아무리 많아도 단지 배열의 길이만 바꾸면 된다. 선언과 생성 배열을 선언하려면, 원하는 타입의 변수를 선언하고, 변수 또는 타입에 배열임을 의미하는 대괄호[ ]를 붙이면 된다. 대괄호는 타입 뒤에 붙여도 되고, 변수 이름 뒤에 붙여도 된다. 배열을 선언한 다음에는 배열을 선언해야 한다. 배열을 선언하는 것은 단지 생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 배열을 생성해야 값을 저장할 수 있는 공간이 만들어진다. 배열을 생성하기 위해서는 'new'연산자 와 함께 배열의 타입과 길이를 지정해 ..

Java 2023.03.09

자바(Java) - 조건문과 반복문(if, switch, for, statement).연습문제

4 - 4번 문제 못풀어서 정훈님이 도와주셨다. 처음에 변수를 num하나만 두고 while 문을 돌려버려서 마지막에 몇번째 숫자를 더해야 100이 넘는지가 아니라 결과값이 100을 넘게 하는 마지막 숫자를 더했을 때의 값을 출력해 버린 것 같다. 그래서 100을 넘게 하는 숫자를 구하기 위해 변수를 하나 더 설정했다. while문을 돌려서 num에 100을 넘게하는 값을 저장하도록 하고, a라는 변수를 추가해서 a에 num을 2로 나눈 나머지가 1이면 더하고 나머지가 0이면 빼도록 해서 a의 값이 100이 넘었을 때의 num값을 출력하게 했다. 갈길이 멀다..

Java 2023.03.09

자바(Java) - 조건문과 반복문(if, switch, for, statement)

코드의 실행 흐름은 무조건 위에서 아래로 한 문장씩 순차적으로 진행된다. 하지만 조건에 따라 문장을 건너뛰고, 같은 문장을 반복해서 수행해야 할 때가 있다. 프로그램의 흐름을 바꾸는 역할을 하는 문장들을 제어문(control statement)이라고 한다. 제어문에는 조건문과 반복문이 있는데, 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문자들을 반복해서 수행한다. 조건문 if문 가장 기본적인 조건문이다. if (//조건식){ //조건식이 참일 때 수행될 문장들을 적는 곳 } if의 뜻은 '만일~이라면 { }안에 문장들을 수행하라'이다. if문에 사용되는 조건식은 일반적으로 비교 연산자와 논리 연산자로 구성된다. 블럭{} 괄호를 이용해서 여러 문장을 하나의 단위로 묶을 수 있는데, ..

Java 2023.03.08