Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원/4월 16

22.04.29 - Generic, 향상된 for문(enhanced for), 예외(Exception)

Generic - 제네릭 컬렉션 때문에 나온 애 타입 제한을 위해 사용 - ( 주로 컬렉션 ) 설명서에 많이 나오기 때문에 알아야 한다. 컬렉션은 타입 상관없이 다양하게 넣을 수 있는 것이 장점이자 단점이다. 제네릭 예시 ) 집에 서랍이 하나 있는데 – 세면용품, 공책, 이것저것 다 있다. 꺼낼 때마다 매번 세면용품인지 공책인지 확인해야 한다. - 번거롭고 힘들다 그래서 이 서랍에 이런 것만 넣어주세요 하는 것이 제네릭! 제네릭 예시 ) 서랍에 세면용품만 넣게 해 주면 꺼낼 때 세면용품인지 확인할 필요 없다! 컬렉션에다가 들어갈 수 있는 타입 제한할 수 있다. 제네릭 예시) 서랍에서 매번 꺼낼 때마다 세면용품인지 확인할 필요 없이 다 세면용품이다. 실습으로 제네릭 알아보기! 1. 제네릭 사용 안 한 상태..

22.04.28 - Collection ( ArrayList, HashSet, HashMap), Stack, Queue

코드로 가기 전에 그림으로 설명 ( 이론 ) Collection Interface 같은 타입 여러 데이터를 관리하기 위해서 array 다른 타입 여러 데이터를 관리하기 위해서 class(객체) 다른 타입 객체 여러 개를 관리하기 위해서 obj[](객체배열) 다른 타입 오브젝트 여러 개를 관리하기 위해서collection 컬렉션을 사용하는 이유 – 성능, 편리함! 컬렉션은 인터페이스이다. 대표적인 애들 [ AraayList, HashSet, HashMap ] 3가지 실습해 볼 예정 List – ArrayList, LinkedList list형태로 순서대로 객체들을 가지고 있는 아이 – 중복 허용한다. Set - HashSet 인덱스 없다 – 통 안에 막 들어가 있는 느낌, 중복 허용하지 않는다. Map –..

22. 04. 27 - instanceof, abstract, interface

instanceof 객체 비교 A instanceof B A가 B타입이 맞는지 확인하여 boolean 타입의 데이터를 리턴 셋 다 맞다고 출력 ~! 진도 플러스~~ 추상화 – 추상메소드 – 추상클래스 기본 세팅 부모 클래스 Car 클래스 - 데이터와, 시동걸기 메서드(startCar) / 브레이크 메서드(stop)/ 액셀 메서드(go) 가지고 있음 Car extends 한 자식 클래스 - RedCar, GreenCar, WhatCar 생성 RedCar에서는 @Override startCar 한 상태 ( 나머지는 클래스에서는 X ) Car클래스의 존재 이유? 모든 컬러Car들을 Car라고 묶어주기 위해서 만들어 놓은 것! 차가 시동 거는 행동을 묶어주기 위해서 만들어 놓은 것! 그냥 차가 만들어지는 경우는..

22. 04. 26 - 상속(super, override), 다형성, 바인딩

상속 ( super, override ) 상속이란? - 부모 클래스의 data, method, 받아오는 것. constructor는 아님 >새로 생기는 클래스마다 같은 내용의 코드 작성 번거롭다. >공통된 데이터 / 공통된 기능을 부모에게 몰아넣고 자식들은 상속받아서 사용하도록! 상속 관계에서 super 와 override super this 는 자기 자신을 가리킨다. 상속관계에서 super 는 그 객체의 부모를 가리킨다는 것 체크 override override : 부모의 함수를 재정의해서 사용하는 것 자식 클래스인 - 피카츄 클래스 안에 - attack() 메소드 없어도 - 부모 클래스인 포켓몬에는 attack() 존재한다. 자식 클래스인 - 피카츄 클래스는 - 포켓몬 클래스 상속받았으므로 attac..

22. 04. 25 - 시험, 주말 과제 발표

중간 TEST JAVA - 지금까진 배운 [ 변수, 연산자, 제어문, 반복문, 배열 객체 등 ] 을 바탕으로 TEST를 보는 시간을 가졌다. > 프로그래밍 언어 응용 파트 - 2 가지 유형의 시험 진행 - 각 1:30 분씩 진행 문제 해결 시나리오 - 문제로 제시된 코드의 문제점을 찾고, 원인과 해결 방법을 제시하는 문제 서술형 - 개념 설명 문제가 주로 나왔고, 종류나 특징을 쓰는 문제들 점수는!!! > 100점 / 100점! GOOOOD :) > 비록 오픈 컴퓨터?로 진행된 시험이고, 시험 내용에 대한 힌트도 있었지만ㅎㅎ > 몇 가지 문제들 속에 함정들과 치사한 부분들이 있어서 > 100점 예상하신 분들도 점수가 생각보다 낮을 수도 있다고 말씀하신 강사님 후훗 > 당당히 100점 100점 GET! 후..

22. 04. 22 - 접근 제한자(Access Modifier), 인자 값을 받는 생성자

접근 제한자 public / protected / default / private 지금까진 다 public으로 사용했었는데 하나씩 다 사용해보자. 접근 제한자 실습 스타트! 0. 피카츄, 꼬부기, 야도란, main 클래스를 만들어 놓은 상태이다. 1. 메인 클래스에 피카츄 객체 생성 후 - 피카츄 레벨 확인해 보기 2. p.level 의 level 변수 (데이터)의 접근 제한자를 private private로 변경해보기 2-1 메인 클래스에 돌아와서 보니 오류가 난다. 안보인다고 오류남 - private 해주면 같은 클래스에서만 사용한다 다른 클래스인 Main 클래스에서는 안 보이는 거랑 마찬가지이다! private 해주면 외부에서 접근 불가능하다. 3. private 변수를 다른 곳에서도 사용할 수 있..

22. 04. 21 - 생성자(Constructor), 오버로딩(overloading)

생성자 – Constructor 객체를 생성함 컴퓨터가 자동으로 생성해줌 ( 디폴트 생성자는 ) public MenuHamburger(){ } 접근 제한자 클래스 이름( ) { } > 생성자를 호출해서 객체를 생성한 것이었다.! > 모든 클래스 타입에는 생성자를 가지고 있다. ( 필요하다 ) > ( 클래스 타입을 만드는 이유가 객체를 만드려고 존재하는 것이기 때문에 ) 생성자 호출 메서드 호출과 비슷하다고 이해하면 된다 생성자를 호출하게 되면, 생성자 찾아가서 { } 찾아가서 수행하고 다시 돌아온다. 생성자는 리턴 타입이 없다. 왜 그럴까? 객체 생성만 해주는 것이 역할이라서 == 객체 초기화만 담당하므로 생성자는 클래스 네임이랑 똑같아야 한다. 접근 제한자는 생략 가능 +@ tip > 이 클래스로 객체..

22. 04. 20 - this, 객체 배열, 인자 값 받는 메소드

this : 현재 객체를 의미 클래스 변수 public String name; 선언해준 뒤 클래스 함수 introduce( ){ } 안에 String name이라는 변수 사용해보기 - 멤버 변수 String name은 빨간 테두리 안에서 어디든지 갈 수 있고, 다 돌아다니는데 - 멤버 함수 introduce( ) 안에 똑같은 String name을 썼네? > 근데 작동되네? why? > 다른 공간이라서 그렇다. 넹? > 파란색은 지역변수 - > 빨간색은 멤버 변수 - > 클래스 변수 - 멤버 변수는heap메모리에 name이라는 애로 존재 > 빨간색 변수 - 지역변수는 stack메모리에 name이라는 애로 존재 > 별개의 영역에 존재하기 때문에 전혀 다른 것이다. 괜찮다! this > 현재 해당 메소드가 ..

22. 04. 19 - 객체 생성, 객체의 메소드 호출, 객체의 변수 접근

이론 파트 -- 객체 - Object > 현실 세계에서 흔히 찾아볼 수 있는 대상을 추상화(Abstraction) > 절차 지향형은 모든 상황에 처리하는 법을 알고 대비해놓고 있어야 해서 현실 세계와 동떨어진 느낌 클래스 > 클래스는 메소드와 변수로 구성되어있다.~ > 여기서 변수는 – 클래스 변수 ( 전역변수, 인스턴스 변수, 객체 변수 이런 애들) , 지역변수 X > 객체를 만들기 위해 필요한 객체의 설계도 인스턴스 > 실체로 만드는 과정을 인스턴스화 > 객체, 즉 인스턴스는 무조건 힙 메모리에 할당되도록 정해져있다.(배열도 힙 메모리)) > 힙 메모리에 있는 배열에 접근하기 위해서– 직접 접근할 수 없었다. 주소 값 못 외움 > 참조변수 arr 같은 변수에 주소 값 저장해놓고 접근했었다. > 힙 메..

22. 04. 15 - 이차원 배열, 총 복습(변수, 연산자, 조건문, 반복문, 배열)

다차원 배열 - 2차원 배열만 해볼 예정 배열을 안다는 것은? 배열을 생성할 줄 알아야 하고 // int[][] a = new int[3][3]; 배열에 접근할 줄 알아야 // a[0][0]; 배열을 아는 것이다. 1. 배열 생성하기 int[ ] [ ] a = new int [ 3 ] [ 3 ]; 2. 배열 접근하기 a[ 0 ] [ 1 ]; a 라는 배열 접근 a 배열은 각 칸에 - 배열 1개씩 저장되어있다. 3칸이 있다. a[0] [0] = 1; --> 3개 배열 중 첫 번째칸 배열에 접근해서 그 배열 첫 번째칸에 1 대입 a[2] [0] = 2; --> 3개 배열 중 3 번째칸 배열 접근 – 그 배열 0번째 칸에 2 대입 3. 배열 출력하기 System.out.println(a[0][0]); 출력을 ..