Java 실습 24

[220531] 상속(inheritance), super, super()

목표 달성 수업 복습 ■ 복습문제 해설 - static은 this 사용불가 - class 분리하기 위해서 다른 곳에서도 사용할 수 있도록 public을 class 앞에 붙이기 ■ 상속 상속의 의미 : 기존 클래스에 기능을 "추가"하거나 "재정의"하여 새로운 클래스를 정의 하는 것 상속 이용시 기존에 정의되어 있는 클래스의 모든 필드와 메소들를 물려받아 새로운 클래스를 생성할 수 있음 부모 클래스(parent class) = 상위 클래스(super class) = 기초 클래스(base class) 자식클래스(child class) = 하위 클래스(sub class) 1. 개요 - 클래스의 재사용, 기존 클래스를 물려받아 새로운 부분만 [추가]하거나 [수정]하려고 만든 개념 [부모클래스(parent clas..

Java 실습 2022.05.31

[220527] 접근제한자(Acess Modifier)

목표 달성 1. private를 붙이고 getter/setter를 이용하여 class Score 를 작성할수 있다. 수업 정리 ▷ 접근제한자 public 접근 제한자 : 외부 클래스가 자유롭게 사용할 수 있음 protected 접근 제한자 : 같은 패키지 또는 자식 클래스(상속)에서 사용할 수 있음 default 접근 제한자 : 같은 패키지에 소속된 클래스에서만 사용할 수 있음 private 접근 제한자 : 외부에서 사용할 수 없음 접근 제한 적용 대상 접근할 수 있는 클래스 public 클래스, 필드, 생성자, 메소드 모든 클래스 protected 필드, 생성자, 메소드 같은 패키지 내에 있는 클래스 상속받은 자식 클래스 default 클래스, 필드, 생성자, 메소드 같은 패키지 내에 있는 클래스 pr..

Java 실습 2022.05.29

[220525]Class,jvm 메모리 영역, 깊은복사

목표 달성 - 변수의 유효범위를 구분할수 있다. 클래스변수(static 변수) , 인스턴스변수, 지역변수(일회용변수) 트러블 슈팅 ▶ 현상 : Scanner가 정상적으로 작동하지 않음 ▶ 원인 : Scanner를 생성할 때 소스코드에 ""가 입력되어 있음 ▶ 해결책 : ""을 제거하니까 클래스 파일이 적상적으로 작동함 Scanner sc = new Scanner(System.in); ▶ 현상 : 오류X => 오류가 생길 가능성이 높은 소스 ▶ 원인 : 지역변수가 초기화되지 않았다 ▶ 해결책 : void method(){int a = 0; System.out.println(a); }//지역변수 초기화 해주기 수업 내용 요약 정리 ▶ 생성자(Constructor) 인스턴스를 초기화 하는 메서드 기본생성자 파..

Java 실습 2022.05.26

[220524]Class_수정하기

■ 목표 달성 1. oop란? 에 대해서 말할수 있다. (o/X) ㄴ 답변 : - 객체 지향 프로그램 - object - 틀 / oriented - 기반 / program -프로그램 ★면접- 부품객체를 조합해 완성된 프로그램을 만드는 기법 - 현실세계의 객체모델을 바탕으로 프로그램을 구조화하고 개발하는 프로그래밍 기법 - 객체들은 상호작용 : 객체들은 서로간에 기능(동작)을 이용하여 데이터를 주고받음 - 객체지향 프로그램에서는 객체는 다른 객체와 관계를 맺음 - 관계의 종류 집합관계 : 완성품과 부품의 관계 사용관계 : 객체가 다른 객체를 사용하는 관계 상속관계 : 종류객체와 구체적인 사물객체관계 2. 클래스란? 에 대해서 말할수 있다. (o/X) ㄴ 답변 : - 멤버변수 + 멤버변수 - 어떤 사물을 나..

Java 실습 2022.05.24

[220523] Method, JavaApi

■ 목표 달성 ≫ call by reference를 사용하여 성적처리를 작성할 수 있는가? (O) ≫ 메소드 매개변수의 호출 방식은 여러 가지가 있다. 그 중 Call by Reference과 Call by value를 알고 있어야 한다. Call by value는 값을 전달하는 방식이고, Call by Reference는 주소를 전달하는 방식이다. Call by value은 값을 전달받는 것이기 때문에 전달받은 값에 어떤 행동을 취하던지, 기존에 저장된 변수값에는 변함이 없다. 왜냐하면 기존값과 전달받은 값이 같은 주소에 저장된 값이 아니기 때문이다. 그에 반해서 Call by Reference는 주소를 전달하는 방식이므로 어떤 행동을 취하게 되면 기존에 저장된 변수값에 변화가 생김. ■ 트러블 슈팅 ..

Java 실습 2022.05.24

[220516 - 220520][주간 정리] 반복문, Method , 재귀 함수

이번주 수업은 내용 이해(메소드,힙, 스택영역)와 실습, 지난주 진도 반복(for문, while문)이 주였어서 크게 트러블 슈팅을 작성할 게 없었다. 따라서 [주간 정리]에서 이론적으로 이해한 내용을 정리하고, 미니 프로젝트 코드 리뷰를 통해 트러블 슈팅을 작성하였다. 자바 프로그램은 중간 단계의 바이트 코드이다. 이것을 해석하고 실행을 하려면 가상의 운영체제가 필요하다. 그 가상의 운영체제가 jvm(java virtual Machine)이다. 자바 가상 기계라고도 한다. jvm의 메모리 영역은 크게 3가지 영역으로 구분된다. ① 메소드(Method) 영역 : 클래스들을 클래스 로더로 읽어 클래스별로 런타임 상수 풀, 필드 데이터, 메소드 데이터 등을 분류해서 저장 ② 힙(Heap) 영역 : 객체와 배열..

Java 실습 2022.05.22

[220518] Method

■ 목표 달성 bank ver6 제출하기 (완료) => 자료 중복 검사 추가하기 ■ 트러블 슈팅 (1) public static void main(String [] args){} void : 리턴 받을 값이 따로 없을 경우 char / int / double / String : 리턴 받을 값이 있을 경우, 출력할 값의 자료형 String [] args : 입력받을 값의 자료형 (2) 자료형 들어오는 값이 1.2 double값이므로 public static float로 선언했던 것은 잘못되었다. 1.3f값이라면 float자료형이 가능하지만 그렇지 않으므로 double 자료형으로 선언해야 한다. public static void test2(double d) {System.out.println(d);} pub..

Java 실습 2022.05.19

[220516] Array[][] 2차원 배열

■ 목표 달성 1. 배열을 사용하여 2중 for의 다음을 만들수 있다. int[][] da1=new int[2][3]; :::: 출력된 화면 101 102 103 201 202 203 1. for+length를 이용해서 101~203까지 데이터 대입 2. for+length를 이용해서 출력 ■ 트러블 슈팅 1). for-while-do while 변환 구조 정리 for(초기식 ; 종료조건 ; 증감문){ 반복되는 구문; } 초기식 ; while( 종료조건 ){ 반복되는 구문; 증감문; ★증감문의 위치가 while의 반복구문 내에 존재하는지 밖에 존재하는지 갑자기 헷갈렸다. } 초기식 ; do { 반복되는 구문; 증감문; ★증감문의 위치가 do while의 반복구문 내에 존재하는지 밖에 존재하는지 갑자기 헷..

Java 실습 2022.05.16

[220513] 배열

■ 목표 달성 1. 배열을 사용하여 성적처리를 만들수 있다. (Ex016번예제) (있다) ■ 트러블 슈팅 1)코드 누수 제거. (break; 활용하기) '배열[0]부터 입력받은 값이 있는 곳까지 같은 값이 있는지 확인하는 과정'에서 같은 값이 있으면 이후 처리를 거칠 필요가 없다. 따라서 for문에서 빠져나오는게 필요하다. 그렇지 않으면 불필요한 처리 과정이 생기게 된다. break;를 활용하면 설정한 조건이 true이면 가장 가까운 for문에서 빠져나오게 되므로 필요없는 과정을 거치지 않아도 된다. break;와 continue;를 적극적으로 활용하면 보다 좋은 if구문을 작성할 수 있다. 2) 헷갈렸던 코드 리뷰 //내가 생각했던 코드 for(int j=0;j

Java 실습 2022.05.15