7. 객체 배열
2022. 10. 31. 16:33
JAVA
객체를 저장하는 배열로 배열의 자료형을 클래스명(사용자 정의 자료형 ) 으로 지정하여 활용 *객체 배열 선언 클래스명[] 배열명 ; 클래스명 배열명[]; *할당 배열명 = new 클래스명[배열크기]; *선언과 동시에 할당 클래스명 배열명[] = new 클래스명[배열크기]; ex) Academy[] arr = new Academy[5]; *인덱스를 이용한 초기화 배열명[i] = new 클래스명(); ex)arr[0] = new Academy(1, "강남"); arr[1] = new Academy(2, "구로"); *선언과 동시에 할당 및 초기화 클래스명 배열명 [] = {new 클래스명(), new 클래스명() }; ex) Academy arr[] = { new Academy(1, "강남"), new Ac..
6_8. 객체 _ 메소드 오버로딩
2022. 10. 27. 18:42
JAVA
오버로딩 : 한 클래스 내에 동일한 이름의 메소드명으로 정의할 수 있는 것 - 오버로딩 조건 1. 같은 메소드명2. 매개변수의 개수, 타입, 순서가 달라야함 ( 매개변수명, 반환타입은 상관없음) public void test() { } public void test(int a) { } public void test(int a, String s) { } public void test(String s, int a) { } public void test(int a, int b) { } //public void test(int c,int d) { //매개변수명은 중요하지않고 자료형이 중요 //} 3. 반환형, 접근제한자도 중요하지 않음 (매개변수가 중요) public void test(String str) { ..
6_7. 객체_ 메소드 예약어 Static
2022. 10. 27. 18:41
JAVA
static : 메소드 선언시 작성할 수 있는 예약어 (static영역에 할당하여 객체 생성없이 사용) 예시1 ) 매개변수 없고 반환값 없는 메소드 public static void method1() { System.out.println("매개변수와 반환값 둘다 없는 static메소드 입니다."); } 예시 2) 매개변수 없고 반환값은 있는 메소드 public static int method2() { System.out.println("매개변수 없고 반환값은 있는 static 메소드 입니다."); //1부터 랜덤값 (1~100)까지의 총 합계 int random = (int)(Math.random()*100 + 1); int sum = 0; for(int i=1; i
6_6. 객체 _ 메소드
2022. 10. 27. 18:38
JAVA
1. 메소드란 - 수학의 함수와 비슷하며 호출을 통해 사용, 전달 값이 없는 상태로 호출하거나 어떤값을 전달하며 호출을하며, 함수 내에 작성된 연산 수행, 수행후 반환값/ 결과값은 있거나 없을 수 있음 [표현법] 접근제한자[예약어] 반환할값의자료형(반환형) 메소드명([매개변수,매개변수,..]) { 수행내용; [return 결과값;] } //예시 public void information(){ System.out.println(studentNo); } 2. 메소드 접근 제한자 +public : 전체 접근 가능 #protected : 같은 패키지내 접근가능, 패키지 다를경우 자손클래스 접근가능 ~(default) : 같은 패키지 접근가능 -private : 같은 클래스 내에서만 접근 가능 3. 메소드 예약..
6_5. 객체_ 생성자
2022. 10. 27. 18:34
JAVA
1 .생성자란 - 객체가 new연산자를 통해 Heap메모리 영역에 할당될 때 객체안에서 만들어지는 필드 초기화 - 생성자는 일종의 메소드로 전달된 초기값을 받아서 객체의 필드에 기록 2. 생성자 명명규칙 생성자의 선언은 메소드 선언과 유사하나 반환값이 없으며 생성자명을 클래스명과 똑같이 지정해야함 [표현법] public 클래스명 ([매개변수,매개변수,..]) { } * 생성자를 작성하는 목적 1. 객체 생성해주기 위한 목적 2. 객체 생성과 동시에 각 필드에 값을 대입할 목적 * 생성자 작성시 주의사항 1. 반환형이 존재하지 않음 2. 반드시 생성자명은 클래스명과 동일해야함 3. 매개변수 생성자를 명시적으로 작성할 경우 기본생성자를 JVM이 자동으로 만들어주지않음 -> 기본 생성자는 항상 작성하는 습관 ..
6_4. 객체 _필드
2022. 10. 26. 16:33
JAVA
필드표현식 [접근제한자] [예약어] class 클래스명{ [접근제한자] [예약어] 자료형 변수명 [=초기값]; } 1. 변수선언 위치에 따른 구분 >>변수 구분 - 전역변수 : 클래스영역 안에 바로 선언한 변수 => 클래스 내에서 어디서든 전역으로 사용가능 - 지역변수 :클래스 영역내의 어떤 특정한 구역({})에 선언된 변수 => 선언된 해당 그지역에서만 사용가능 *특정한 구역 : 메소드 {},제어문(if,for)등등 1. 전역변수 - 멤버변수 == 인스턴스변수 생성시점 : new 연산자를 통해서 객체 생성시 소멸시점 : 객체 소멸시 같이 소멸 - 클래스 변수 == static변수 생성시점 : 프로그램 실행과 동시에 무조건 메모리영역(static)에 할당 소멸시점 : 프로그램 종료될때 소멸 2. 지역변수..
6_3. 객체 _클래스 선언부
2022. 10. 26. 16:32
JAVA
1.클래스 선언 클래스 선언구문에 작성가능한 접근제한자(public , default(접근제한자 생략)) - public : 같은 패키지내에서든 다른 패키지에서든 해당 클래스 사용 가능 - default : 같은 패키지 내에서만 사용가능 (다른 패키지에서는 사용불가) 2. 클래스 다이어 그램 3. 클래스 예시 public class Product { private String pName; //productName private int price; private String brand; //기본생성자 public Product() { } //매개변수 생성자 public Product(String pName,int price,String brand) { this.pName = pName; this.price..
6_2 . 객체 캡슐화 (setter/getter)
2022. 10. 26. 16:20
JAVA
1. 캡슐화란 ? -추상화를 통해 정리된 데이터들과 기능을 하나로 묶어 관리하는 기법 -클래스의 가장 중요한 목적인 데이터의 접근제한을 원칙으로 하여 클래스 외부에서 데이터의 직접 접근을 막고, 대신 데이터를 처리하는 함수들을 클래스 내부에 작성하는 방법 >> 외부에서는 내부가 보이지 않으므로 정보은닉 효과가 발생 private (직접 접근을 막기위해 private라는 접근제한자 이용) 2. 캡슐화 원칙 - 클래스의 멤버 변수에 대한 접근 권한은 private을 원칙으로 한다. - 클래스의 멤버 변수에 대한 연산처리를 목적으로 하는 함수들을 클래스 내부에 작성한다. - 멤버 함수는 클래스 밖에서 접근할 수 있도록 public으로 설정한다. 1) 1.필드부 필드 == 멤버변수 == 인스턴스변수 [표현법] ..
6_1. 객체란
2022. 10. 26. 16:17
JAVA
1. 객체지향언어 : "객체"를 "지향"하는 언어 (객체 중심으로 돌아감) 2. 객체란? -사전적 정의 : 현실세계에 독립적으로 존재하는 모든것들 -자바에서의 정의 : 메모리 영역 중 Heap영역에 생성되는 모든것들 3. 객체지향 프로그래밍 : 현실 세계의 객체들간의 상호작용 프로그래밍을 통해 가상세계로 구현하는 과정 4. 프로그램상에 필요한 객체들을 만들기 위해서는 => 클래스라는 틀을 먼저 만들어야됨 (객체들의 속성값들을 담아낼 그릇같은 존재) => 추상화 + 캡슐화 접목해서 5. 추상화 과정 1) 내가 구현할 프로그램상에 필요한 객체들을 생각해보기 2) 그 객체들이 가지고 있는 공통적인 속성, 기능들을 모두 추출할 것 3) 추출한 것들을 가지고 내가 구현하고자하는 프로그램의 "실질적인 목적"에 맞춰..
5_2. 배열의 복사(ArrayCopy)
2022. 10. 25. 14:27
JAVA
1. 얕은 복사 ( 주소값을 복사) 1) 크기가 5인 배열 origin을 복사한다고 가정 int[] origin = {1, 2, 3, 4, 5}; int[] copy = origin; //주소값이 저장되어있음 , 같은 주소값을 참조하고있음 System.out.println("==복사본 배열 출력=="); for(int i=0;i> 출력결과 ==복사본 배열 출력== 1 2 3 4 5 2) 복사본의 값을 변경하면 원본배열의 값까지 변경됨 copy[2] = 99; System.out.println("----복사본 배열 값 변경 후----"); System.out.println("==원본 배열 출력=="); for(int i=0; i출력결과 ----복사본 배열 값 변경 후----| ==원본 배열 출력== 1 2..