전체 글
-
상속(Inherit) / 오버라이딩(Overriding)개발/자바JAVA 2024. 1. 30. 17:01
▶상속 : 다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능. 쉽게 말해, 코드를 물려주는 것이다. 목적? : 클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약을 정의하기 위함. 뭔소린가 하니... 장점 : 보다 적은 양의 코드로 새로운 클래스 작성이 가능. 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경 용이 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여함. 이해를 돕기위해 위 예제 class (vo)들을 만들어 준다. Main 클래스를 만들어서 출력을 해본다. 여기까지는 우리가 알고 있는 객체와 메소드를 이용한 기본적인 방법이다. 기존 방법은 매 코드마다..
-
객체배열개발/자바JAVA 2024. 1. 29. 17:25
▶객체배열 : 객체를 저장하는 배열로 배열의 자료형을 클래스명(사용자 정의 자료형) 으로 지정하여 활용. ◎객체배열 없이 여러개의 객체를 관리할 경우. 먼저 Book Vo(필드, 생성자, 메소드) 를 만들어 준다. package com.kh.chat01_oneVsmany.model.vo; public class Book { //필드부 private String title; private String author; private int price; private String publisher; //getter / setter public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } ..
-
메소드(Method) / 오버로딩(Overloading)개발/자바JAVA 2024. 1. 29. 13:28
▶메소드란? 수학의 함수와 비슷, 호출을 통해 사용, 전달 값이 없는 상태로 호출을 하거나 어떤 값을 전달하여 호출을 하며, 함수 내에 작성된 연산을 수행한다. 수행 후 반환 값 / 결과 값은 있거나 없을 수 있음 ◎메소드 표현식 ●매개변수와 반환값이 있는 메소드 매개변수가 두개인 메소드를 만들고, 반환 값에 axb를 받아보겠다. 결과값을 int 로 받는거 주의!! 단 이렇게 하면 a 와 b를 곱셈으로 밖에 활용 못한다... 변수에 안담아 놨기 때문에. ●Static 메소드 : 호출 시 객체를 생성할 필요가 없음.(프로그램 시작과 동시에 메모리의 static 영역에 해당 메소드들이 이미 다 들어가 있 음.) 1. 매개변수와 반환값이 모두 없는 메소드 이렇게 객체가 없어도 호출이 된다. 2. 매개변수가 없..
-
생성자(Constructor)개발/자바JAVA 2024. 1. 26. 16:44
> 생성자란? --> 클래스로부터 객체가 생성될 때 호출되는 일종의 "메서드" 임. 반환형이 없고, 이름이 클래스명와 동일한 메서드일 뿐임. --> 객체가 new 연산자를 통해 Heap 메모리 영역에 할당될 때 객체 안에서 만들어지는 필드 초기화 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록 --> 생성자 규칙 : 생성자의 선언은 메서드 선언과 유사하나, 반환 값이 없으며, 생성자명을 클래스명과 똑같이 지정해주어야 함. -- 기존 VO 클래스를 작성할 때 생성자를 굳이 쓰지 않더라도, 생성자를 이용해서 객체 생성이 가능했었음. 바로 new 다음 구문이 생성자이다!!! > 생성자를 작성하는 목적!! 1. 객체를 생성해주기 위한 목적 2. 매개변수로 전달된 값들을 곧바로 필드에 담아서 ..
-
접근제한자(public/protected/default/private)개발/자바JAVA 2024. 1. 26. 13:57
(+)public : 어디서든(같은, 다른 패키지 모두) 접근 가능하도록 한다. (#)protected : 같은패키지의 클래스라면 무조건 접근 가능하고, 추가적으로 다른패키지의 클래스면 "상속" 구조인 클래스에서만 접근 가능하도록 한다. (~)default : 같은패키지의 클래스 끼리만 접근 가능하도록 한다. (-)private : 해당 클래스에서만 접근 가능하도록 한다. >위에서부터 아래 순으로 직접 접근할 수 있는 범위가 좁아진다. > +, # ~, - : 클래스 다이어그램상의 표기이다. 테스트를 위해 각 제한자를 만들어준다. 얘들을 다른 패키지의 클래스에서 호출해 보겠다. 다른패키지 이다. >public : 어디서든 직접접근 가능 얘는 이렇게 곧바로 접근이 가능하다. >protected : 같은 패..
-
변수의 구분(전역변수/지역변수/매개변수)/ static / 상수필드개발/자바JAVA 2024. 1. 26. 13:12
▶변수의 구분 > 전역변수 : 클래스 영역에 바로 선언하는 변수 > 해당 클래스 내에서 어디서든 사용 가능 > 지역변수 : 클래스 영역 내의 어떤 특정한 구역 ({여기}) 에 선언한 변수 > (메소드 영역 안의 변수, if문 안의 변수, for문, while문 안의 변수 등등...) ※자바에서는 변수를 해당 만들어진 { } 영역 (코드 블록) 안에서만 쓸 수 있다. (block scope) ●전역변수 > 맴버변수 (== 필드 == 인스턴스 변수) -->일반 필드를 나타냄 (생성시점 : new 구문을 통해서 해당 객체가 생성되는 순간 메모리 영역에 할당됨) (메모리의 heap영역에 생성) (소멸시점 : 해당 참조 주소값의 연결고리가 끊어지는 순간 사용 불가 -> 일정시간이 지나면 GC (가비지컬렉터) 가 ..
-
객체 지향 언어개발/자바JAVA 2024. 1. 25. 17:37
▶객체 지향 언어? > "객체" 를 "지향" 하는 언어로 "객체 중심" 으로 돌아가게끔 코드를 짤 수 있는 언어. > 객체란? : 클래스에 정의된 내용대로 new 연산자를 통해 메모리 영역에 생성된 것. 사전적 의미로는 현실세계에 독립적으로 존재하는 모든 것들을 의미한다. 이에 발생하는 모든 사건들은 객체간의 상호작용임!!. > 객체생성 : (==참조자료형 변수를 만든다) / 객체 == 인스턴스 / 객체생성 == 인스턴스화 > 객체지향프로그래밍? : 현실세계에서 독립적인 존재들(객체) 간의 상호작용(행위) 을 프로그래밍을 통해 가상세계(코드) 로 구현하는 과정이다. ex> 오프라인 은행 창구 --> 인터넷 뱅킹 오프라인 쇼핑몰 --> 온라인 쇼핑몰 > 그렇다면 객체지향프로그래밍을 하려면? --> 구현하고..
-
배열을 연습 예제(로또 번호 생성)카테고리 없음 2024. 1. 25. 09:40
// 로또 번호 발생기를 만드세요 // 로또 게임 규칙 // 1. 총 6개의 랜덤한 정수로 발생시킬 것 > int 형 값을 6 개 담을 수 있는 배열 생성 // 2. 정수의 범위는 1 ~ 45 임 > Math.random() 메소드 공식 // 3. 절대 중복되는 숫자값이 발생되면 안됨 > 중복 제거 0번째 랜덤값 > 1번째 랜덤값 > 2번째 랜덤값 // 4. 최종 뽑힌 6개의 숫자는 작은 숫자에서 큰 숫자 순서로 배치되어야만 함 > 정렬 (sort) // 오름차순 정렬 : 가나다순, abc순, 123순 > Arrays.sort(배열명); // 내림차순 정렬 : 가나다순의 역순, abc순의 역순, 123순의 역순 // [x, x, x, x, x, x] 형태로 출력 public void method12() ..