전체 글 202

Java Section 12 : 추상 클래스와 인터페이스

01 추상 클래스와 추상 메서드■ 추상 메서드 : 선언부만 작성하고 구현부는 작성하지 않고 남겨두는 미완성 메서드- 오버라이딩을 위해 자바에서 지원하는 방법. - "abstract" 키워드 함께 표기 + ;(세미콜론) 붙이기  (중괄호 x)[접근 제한자] abstract 반환타입 메서드이름(매개변수1, 매개변수2,..);- 추상메서드는 반드시 추상 클래스 안에 건언되어야 하며, 추강 메서드를 1개 이상 선언하면, 그 클래스는 추상 클래스로 선언되어야 한다. ■ 추상 클래스 : 하나 이상의 추상 메서드를 포함하는 클래스[접근제한자] abstract class 클래스이름 {// 필드// 생성자// 메서드(추상 메서드 포함)}- 멤버변수, 메서드, 생성자 모두 가능- 일반 클래스처럼 독립적으로 생성자를 호출해..

IT/JAVA 2025.01.19

능력단위평가 1 복습 : 정수 2개 입력받아 랜덤수 구하기

※ 문제[정수를 2개 입력합니다.정수1~정수2 사이의 랜덤수를 3개 출력해주세요.단, 랜덤숫자끼리는 중복되어서는 안됩니다!] ※ 한글코딩 스캐너 객체 선언 랜덤 객체 선언 무한루프 { 정수 A, B를 입력하세요 ! 출력 정수형 변수 A = 스캐너.정수형 사용자에게 입력받음 정수형 변수 B = 스캐너.정수형 사용자에게 입력받음 /* 정수 2개의 조건 1. 같으면 안됨 2. A가 B보다 작아야 함 3. 둘의 차이가 2 이상이어야 함 */ 만약(A가 B보다 크다면) { 임시 저장 변수 tmp 선언 tmp에 A의 값을 넣어놓고 A에 B값을 넣음 B에는 저장해놨던 tmp를 넣음(A값) // 교환로직 } 그게 아니고 (A와 B가 같다면) {..

카테고리 없음 2025.01.19

Java Section 11 : 다형성과 타입 변환

01 클래스에서의 타입 변환■ 클래스의 타입 변환에도 자동 형 변환, 강제 형 변환 존재   => 상속 관계에 있는 클래스 사이에서만 변환 가능 ① 자동 형 변환 : 상속 관계에 있는 자식 클래스의 객체를 부모 타입의 객체로 변환하는 것-> 자식 타입에서 부모 타입 방향으로만 가능package practice;class Parent {}class Child extends Parent {}public class Ex { public static void main(String[] args) { Parent p1 = new Parent(); Child c1 = new Child(); Parent p2 = new Child(); // 자동형변환 Parent p3 = c1; // 자동형변환 if(p3 =..

IT/JAVA 2025.01.18

Java Section 10 : 상속

[상속]■ 상속 : 부모 역할을 하는 클래스가 자식 역할을 하는 클래스에게 클래스 멤버와 메서드를 물려주는 것               - 클래스를 재사용하기 때문에 중복을 줄여주고 수정을 최소화함□ 자식 클래스에서 "extends" 키워드를 사용하여 상속받을 클래스를 지명한다.             ※ 자바는 다중 상속을 허용하지 않으므로 extends 뒤에 하나의 부모 클래스만 허용한다.   - 부모 클래스의 상속을 받은 자식 클래스는 부모 클래스의 모든 멤버를 가져다 쓸 수 있다. 부모 클래스 == 상위 클래스 == 기반 클래스자식 클래스 == 하위 클래스 == 파생 클래스 [상속에서의 생성자]특별한 역할을 하지 않는 기본 생성자는 비어있는 것이 맞지만 자식 클래스의 기본 생성자는 super()라는..

IT/JAVA 2025.01.17

Java Section 09 : 생성자

01 생성자의 특징■ 생성자 : 객체를 생성할 때 호출되어 객체의 초기화를 담당하는 특별한 메서드- 객체를 생성하고 초기화하려면 반드시 생성자를 호출해야 함.- 생성자를 통해 객체를 초기화 한다는 것은 필드와 메서드를 호출하는 등 객체를 사용하기 위해 객체를 메모리에 올린다는 것이다.- 생성자 역시 매개변수를 통해 값을 전달할 수 있다.클래스명(매개변수1, 매개변수2...) {}- 일반 메서드와 달리 반환 타입이 없고 이름은 클래스 이름과 동일 □ 호출 위치 : 객체의 초기화를 담당하기 때문에 객체를 생성할 때만 호출 가능□ 호출 방법 : new 키워드를 함께 사용클래스명 객체명 = new 클래스명();생성자를 통해 객체를 생성하는 방법은 다음과 같다. ■ 기본 생성자 : 생성자를 직접 선언하지 않으면 ..

IT/JAVA 2025.01.16

[JAVA] 객체배열 - 포켓몬 프로그램

package pokemon;import java.util.Arrays;import java.util.Random;import java.util.Scanner;/*플레이어(트레이너)가 있습니다.트레이너는 1명당 최대 6마리의 포켓몬을 가질수있습니다.트레이너는 이름을 가질수있습니다.이름이 없는 트레이너는 '무명'으로 설정됩니다.트레이너는 소유한 모든 포켓몬들의 상태를 출력할 수 있습니다.소유한 포켓몬의 체력이 0이라면 [기절]을 출력해주세요.트레이너는 자랑을 할 수 있습니다.자랑하기를 실행하면 레벨이 가장 높은 포켓몬을 출력해주세요.레벨이 가장 높은 포켓몬이 2마리 이상이라면 경험치가 높은 포켓몬이 출력됩니다.경험치가 동일하면 먼저 저장된 포켓몬이 출력됩니다.트레이너는 대결을 할 수 있습니다.야생의 포켓몬..

IT/JAVA 2025.01.16

Java Section 08 : 메서드

01 메서드■ 메서드 : 클래스 안에서 특정 기능을 수행하기 위해 코드들을 따로 하나의 블록으로 묶어 놓은 집합-> 같은 코드의 반복적 사용을 피하고, 코드의 중복성을 제거하고, 코드의 재사용성을 높일 수 있다.=> "모듈화"      가독성, 유지보수성이 좋아진다.접근제한자 반환타입 메서드이름() { // 기능을 수행할 코드 }- 메서드는 또 다른 메서드에서 호출되어 사용됨- 메서드는 클래스 안에서 선언되므로 메서드를 사용하기 위해서는 해당 클래스의 객체부터 생성해야 한다.Book b = new Book();b.read();Book이라는 클래스에 선언된 read() 라는 메서드를 호출하려면 다음과 같이 작성 02 매개변수와 return1) 매개변수 : 특정 기능을 수행하기 위한 메서드는 기능 수행..

IT/JAVA 2025.01.15

[DAY 11] 캡슐화, 상속, 오버라이딩, Object 클래스

[캡슐화]: 외부에서 건들 수 없도록 함. ■  객체 외부인 메인에서 객체 내부에 너무 쉽게 접근할 수 없도록 직접 접근을 막는다. -> 클래스에서 멤버변수의 접근제한자를 public에서 private로 바꾸면 에러 발생! 객체 정보에 접근할 수 없게 된다 . ==> "하이딩(정보은닉)"   ■ "접근자", "접근제한자" ---> 크게 보면 private(전부 가리기), public(전부 공개)  ■ main은 반드시 public이 원칙. ■  "getter"  : 캡슐화된 (=정보가 은닉된, 정보가 하이딩된)  멤버변수의 값을 가져오고 싶을 때 사용 1)  getter는 가져올 수 있는 메서드이기 때문에 반드시 public으로 선언 2) getXXX - (get멤버변수명) 으로 이름 작성. 3) 리턴값..

IT/JAVA 2025.01.14

Java Section 07 : 클래스

01 객체 지향 프로그래밍■ 객체 지향 프로그래밍(OOP) : 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍하는 것 ■ 객체 : 상태를 표현할 수 있고, 우리가 행동으로 실행할 수 있는 모든 것.=> 자바는 객체를 기반으로 한 대표적인 프로그래밍 언어!  02 객체와 클래스 ■ 클래스 : 자바의 기본단위. 하나의 클래스를 통해 여러 객체를 생성/사용 ■ 구조 : Cat c = new Cat();// 클래스명 객체명 = new 클래스명();=> "new 연산자"를 이용해서 객체 생성- 클래스는 보통 하나의 소스 파일에 하나의 클래스를 선언하지만 파일의 이름과 동일한 클래스만 public을 사용하고, 다른 클래스는 public을 제외한다면 2개 이상의 클래스를 하나의 소스 파일에 작성할 수 있다. 03..

IT/JAVA 2025.01.14

[Day 10] 객체와 생성자

class Student {■ 클래스 선언 시 public을 사용하지 않는 이유 : 클래스는 파일 이름과 동일해야 하기 때문에, main함수가 있는 클래스가 클래스 이름으로 인식되도록 해야한다. 그러나, 다른 클래스를 선언하면서 public을 붙여버리면 그 클래스를 인식하고 오류가 나기 때문에 public을 빼줘야 한다.class Student { String name; int score; // 멤버변수 == 필드, 속성, attribute, property }멤버변수는 다양한 이름으로 불린다. 오늘은 비슷한 생성자를 간략하게 만들고자 하는 "코드 간략화"에 대해 배웠다.생성자에서의 코드 간략화는, 가장 인자가 많은 생성자만 구현하고, 나머지 생성자는 인자가 가장 많은 생성자를 재사용하는 것이다.==>..

IT/JAVA 2025.01.13