8일

권준석·2022년 9월 5일
0

자바는 객체 지향 언어. 객체를 부품으로 이해

패키지 : 설계도 뭉치
클래스 : 카테고리 설계도

자바와 비유 하자면 부품을 객체로 이해하고 이 객체는 클래스가 정의한다
객체라는 단어가 나오면 부품이라는 의미로 접근하는것이 더 좋을수 이다 <초급>
부품은 설계도 기반. 이런 설계도를 의미하는것이 클래스

객체 = 설계도 (X)
객체 : 개발자가 정의한 자료형을 실제 사용하기 위해 만든 대상
프로그램 구동이 되면서 RAM에 만들어 놓고 사용하는것
객체를 만드는 명령어 new

new 클레스이름( ); : 생성자 클래스 이름과 동일한 메소드

시작 클래스 : 메인 메소드 생성

객체의 정의
클레스

  1. 전역변수
    클래스 영역 전체에서 사용하는 변수

  2. 지역변수
    메서드 내에서 사용하는 변수, for문에서 사용하는 변수,특정 블록에서 사용

  3. 메서드 정의하고 사용
    함수는 미리 정해놓은 기능. 호출(매개변수전달),실행,리턴값
    직접 함수을 만드는 것을 공부

public void 함수명 (매개변수 정의) {
구현 내용
}

기본 자료형
변수에 저장된 값이 실제 사용할 데이터

int
double
char
boolean

참조 자료형
(객체)변수에 저장된 값이 실제 데이터가 있는 곳의 주소

String
객체 정의 클래스

여러개의 변수가 하나의 객채를 공유하는 큰 의미

매모리의 용량을 아낄수있다
기타 컴퓨터 자원을 아낄 수 있다

참조자료형의 초기 값은 null

정리

변수 : 자료를 저장하는 기억 공간 (렘에 할당)

변수는 선언의 위치에 따라
전역변수와 지역번수로 구분

  • 변수를 사용할 수 있는 영역 체크

자바에서 변수는 원시타입변수,참조타입변수

원시타입은 실제데이터를 변수가 저장
참조타입은 실제 데이터가 있는 곳의 주소값을 변수가 저장
*참조타입은 실제데이터를 공유한다. >저장공간 절약 효과

클래스는 객체를 정의 하는 것
프로그램 구동시 생성자(클래스)로 객체로 만들어 사용한다.

객체가 저장되는 공간은 JVM의 heap AREA이다.

클래스는
전역변수와 메서드로 구성

메서드는 클래스의 행위를 정의 (삽입,삭제,수정 등)

메서드는 정의를 하고 호출을 해서 사용함.
정의는 1번, 호출은 여러번 가능

메서드를 나누면 중복된 코드를 줄일 수 있고, 기능을 세분화 할 수 있다.
소스의 가독성이 좋아지고, 유지보수 및 업그레이드가 용이
메서드를 나누는 것은 개발자의 역량

Main 클레스

package LoveZoo;

public class Main {

public static void main(String[] args) {
	new ZooADM();
}

}

ZooADM 클레스 (어드민)

package LoveZoo;

import java.util.Scanner;

public class ZooADM {
String[] name = new String[5];

ZooADM() {
	menu();
}

public void menu() {
	for (;;) {
		System.out.println("1. 입력");
		System.out.println("2. 출력");
		System.out.println("3. 삭제");
		System.out.println("4. 수정");
		System.out.println("5. 검색");
		Scanner in = new Scanner(System.in);
		System.out.println("메뉴를 선택하세요");
		int a = in.nextInt();
		in.nextLine();
		if (a == 1) {
			ZooInput();
		} else if (a == 2) {
			prt();
		} else if (a == 3) {
			delete();
		} else if (a == 4) {
			update();
		} else if (a == 5) {
			search();
		}
	}
}

public void ZooInput() {
	Scanner in = new Scanner(System.in);
	System.out.println("단어를 입력하세요");
	String Word = in.nextLine();
	for (int i = 0; i < name.length; i++) {
		if (name[i] == null) {
			name[i] = Word;
			break;
		}
	}
}

public void prt() {
	for (int i = 0; i < name.length; i++) {
		System.out.println(name[i]);
	}
}

public void delete() {
	Scanner in = new Scanner(System.in);
	System.out.println("삭제 할 단어를 입력하세요");
	String Word = in.nextLine();
	int check = 0;
	for (int i = 0; i < name.length; i++) {
		if (name[i] != null) {
			if (name[i].equals(Word)) {
				name[i] = null;
				System.out.println("삭제 완료");
				check = 1;
				break;
			}
		}
	}
	if (check == 0) {
		System.out.println("삭제할 데이터가 없습니다");
	}
}

public void update() {
	Scanner in = new Scanner(System.in);
	System.out.println("수정 할 단어를 입력하세요");
	String Word = in.nextLine();
	System.out.println("수정 될 단어를 입력하세요");
	String NewWord = in.nextLine();
	int check = 0;
	for (int i = 0; i < name.length; i++) {
		if (name[i] != null) {
			if (name[i].equals(Word)) {
				name[i] = NewWord;
				System.out.println("수정 완료");
				check = 1;
				break;
			}
		}
	}
	if (check == 0) {
		System.out.println("수정할 데이터가 없습니다");
	}
}

public void search() {
	Scanner in = new Scanner(System.in);
	System.out.println("검색 할 단어를 입력하세요");
	String Word = in.nextLine();
	int check = 0;
	for (int i = 0; i < name.length; i++) {
		if (name[i] != null) {
			if (name[i].equals(Word)) {
				System.out.println((i + 1) + ". " + Word);
				check = 1;
				break;
			}
		}
	}
	if (check == 0) {
		System.out.println("검색 할 단어가 없습니다");
	}
}

}

profile
ㅇㅇ

0개의 댓글