내일배움캠프 7기 17

특강(클래스,메모리구조_Heap,Stack)

Class 특강1.객체지향 프로그래밍코드 재사용성 증가: 한번 작성한 클래스를 여러 곳에서 재사용할 수 있음유지보수 용이성: 코드 구조가 명확해져 수정과 업데이트가 쉬움신뢰성 향상: 객체 단위로 문제를 해결함으로 버스 발생 가능성이 줄어 듬그 외) 절차지향, 함수형 프로그램 2.클래스(Class)와 객체(Object),인스턴스(Instance)클래스(class)란?정의: 객체를 생성하기 위한 설계도용도: 객체의 속성(변수)과 일&기능(메서드), 생성될때 꼭 필요한(생성자) 정의->객체는 new 로 정의 객체(Object)란?정의: 클래스에 정의된 내용을 기반으로 메모리에 생성된 구체적인 대상용도: 프로그램에서 실제로 활용되는 실체객체는 추상화 수준을 뒤바꿔 말할때가 많다인스턴스(Instance)란?정의:..

자바(제네릭,인터페이스)_나무반

나무반제네릭 등장 이전의 자바우리가 제네릭을 가장 먼저 접하는 것이 자바에서 리스트를 사용 할 때new Arraylist 안의 는 이 생략된 상태임  이전에는 리스트에 뭐가 들어 있을지 알 수 없음->매번 타입 체크를 해야함, 여러 타입이 있어 공통적인 처리 불가능보통 아래와 같이 변수명에 타입을 표시하여 어떤 리스트인지 알 수 있도록 처리함List intList = new Arraylist();  제네릭의 등장라벨을 안 붙이면, 어떤게 들어 있는지 모른다그래서 라벨링=> 그제 제네릭제네릭이 사용되는 시점에 어떤것으로 사용할지 반드시 표기(구체화) 되어야 제대로 사용 할 수 있음   ex)'김재호'라는 부분이 변경되는 값이고 나머지는 고정된 값, 제네릭에 비유하자면'김재호= T'라는 글자가 위치하는 곳 ..

자바(예외,오류처리)&새싹반 수업(Enum,컬랙션)

4주차 자바예외(Exception), 오류처리(error) 오류(Error)는 일반적으로 회복이 불가능한 문제입니다.이는 시스템 레벨에서, 또는 주로 환경적인 이유로 발생합니다.코드의 문제로 발생하는 경우도 있지만, 일단 발생하는 경우 일반적으로 회복이 불가능합니다.에러가 발생한 경우 우리는 어떠한 에러로 프로그램이 종료되었는지를 확인하고 대응합니다.예외(Exception)는 일반적으로 회복이 가능한 문제입니다.회복이 가능하다는 전제는 우리가 “그 예외가 발생할 수 있다는 것을 인지하고, 대응했을 것입니다”.현실적으로 코드 레벨에서 할 수 있는 문제 상황에 대한 대응은 “예외 처리”에 속합니다.컴파일 에러(예외) 📂.java 파일을 .class 파일로 컴파일할 때 발생하는 에러대부분 여러분이 자바 프로..

자바(객체지향)

나무반객체지향(object-oriented programming)   객체 지향을 잘한다=상대에게 내 의견을 아주 논리적으로 설득잘한다  객체 지향을 잘 하기 위한 가이드객체지향은 인간의 사고 관점에 어떤 것을 분류하려고 하는 모델지극히 인간 관점 객체 지향을 표현 해야 한다-> 컴퓨터를 써서 표현해야 한다->컴퓨터는 사람언어를 모른다 -> 컴퓨터가 아는 언어(java 등)를 써야 한다->java 쓰려면 문법 배워야 한다 내가 어려운게 자바 문법인지 객체 지향인지 체크해보기 객체(Object)란? 실생활의 객체ex)눈앞에 있는 모니터, 키보드, 노트북, 마우스,휴대폰 사전적 의미에서는 실체나 물리적인 물체, 물건을 의미하고 있지만객체지향 프로그래밍(oop)에서는 무형의 논리적인 개념들로 객체를 인지할 수..

자바(클래스, 객체, 상속) & Git

새싹반 수업클래스(Class)-명사구성객체 지향 프로그래밍에서 가장 중심적인 개념 중 하나'객체를 생성하기 위한 틀' or '설계도'구성: attributes(속성),methods, 생성자이러한 속성과 행동이 결합된 하나의 독립적인 단위 Attribute(속성)클래스가 표현하는 대상의 특징이나 상태를 나타냄다르게 표현하면 '무엇을 가지고 있는가?'라는 질문에 답하는 부분 속성은 클래스 내부의 변수로 표현이 변수들은 해당 클래스의 인스턴스(객체)마다 각각 다른 값을 가질 수 있음ex)학생-나이, 성별, 반, 나이, 전공 Methods클래스가 표현하는 대상의 행동이나 기능을 나타냄'무엇을 할 수 있는가?'라는 질문에 답하는 부분함수형태로 표현되며, 해당 클래스의 인스턴스(객체)가 수행 할 . 수있는 동작들을..

트러블슈팅(계산기 만들기)

클래스를 이용하지 않는 계산기  기본적인 틀을 작성하고 실행을 했더니 오류.. 작성한 폴더를 확인해 보니 새로운 폴더가 생겨서 클래스 없는 계산기 작성한 내용이 이쪽으로 이중 저장 되었다 그리고 작성한 코드도 반복문을 제대로 사용하지 않고 break;만 냅다 썼어서while문을 제대로 넣어서 다시 작성했다package nonclasscalculator;import java.util.Scanner;public class Calculator { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(true) { System.out.println("첫 번때..

Spring 7기 11일차(웹)

나무반 강의Web 프로토콜(protocol)=누군가 정해둔 약속HTTP Hyper Text Transfer Protocol IP =Internet protocol컴퓨터끼리 통신할때 누구인지 판단을 네트워크 통신을 위한 id 같은것네트워크 통신을 위한 장비는 반드시 하나의 IP를 지정 받음인터넷도 IP 체계 이용네이버 구글 카카오 서버 모두  Packet패킷은 전달하는 작은 데이터 조각을 의미package(패키지)와 비슷한 의미로 이해 하면 편하다 IP통신 문제점비연결성: 수신 대상의 현재 상태에 상관없이 정송비신뢰성: 많은 과정을 거치다가 데이터가 소실용량이 크면 여러 패킷으로 나위어 전송하지만 도착하는 순서가 바뀜 ->문제 해결위해 TCP 프로토콜 만듬 TCP vs UDPTCP: Transmission..

Spring 7기 10일(자바, 알고리즘)

>오버로딩함수가 하나의 기능만을 구현하는 것이 아닌 하나의 메서드 이름으로 여러 기능을 구현하도록 하는 java 기능한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메서드가 있더라도, 매개변수의 개수 또는 타임, 순서가 다르다면 이름을 사용해서 메서드를 정의할 수 있다 오버로딩의 조건메서드의 이름이 같고, 매개변수의 개수, 타입, 순서가 달라야 한다'응답 값만' 다른 것은 오버로딩을 할 수 없다접근 제어자만 다른 것도 오버로딩을 할 수 없다결론, 오버로딩은 매개변수의 차이로만 구현할 수 있다-기본형 매개변수 = 읽는것만 가능매개변수의 타입이 기본형일 때는 값 자체가 복사되어 넘어가기 때문에 매개값으로 지정된 변수의 원본 값이 변경되지 않음메서드를 호출할 때 전달할 매개값으로 지정한 값을 메서드의..

Spring 7기 9일(자바 클래스,메서드)

자바 3주차 클래스(설계도) 객체세상에 존재하는 물체를 뜻하며, 식별이 가능한 것을 의미속성과 행위로 구성되어 있다ex) 속성: 자동의 회사, 모델, 색상, 가격, 속도 == 자바의 필드      행위: 가속, 브레이크, 기어변속, 조명, 경적등  ==자바의 메서드  -사용관계-포함관계-상속관계 캡슐화필드(속성)과 메서드(행위)를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것을 의미보안 때문에 중요하다외부 객체에서는 캡슐화된 객체의 내부 구조를 알 수 없기 때문에 노출 시켜 준 필드 or 메서드를 통해 접근 가능필드와 메서드를 캡슐화 하여 숨기는 이유= 외부 객체에서 해당 필드의 메서드를 잘못 사용하여 객체가 변화하지 않게 하기 위해Java에서는 캠슐화된 객체의 필드..

Spring 7기 8일차(자바)

조건문 특정 조건에 따라 다른 연산을 수행하고 싶을때조건문❓ : “물이 끓으면 강불에서 약불로 줄여주세요.”**“물이 끓으면”**이 조건이 만족하면 “약불로 줄이는” 연산을 수행하는 조건문입니다-if문public class W12 { public static void main(String[] args) { //중첨 if문 boolean flag = true; int number =2; if (flag) { if (number == 1) { System.out.println("flag값은 true고, number값은 1입니다."); } else if (number == 2) { ..