💻 <!-- dev -->/Java

    [Java] 12_입출력(Input/Output의 개요)

    12_입출력(I/O) 입출력(IO): 컴퓨터 내부 또는 외부 장치와 프로그램 간의 데이터를 주고받는 것 => 기준점은 프로그램! 데이터가 프로그램에서 입/출력되며 이동하는 공간을 "스트림(통로)"라고 부름(학원에서는 외부 요소 중에서 파일을 기준으로 통로 움직임을 보여 주며 진행할 것) FileRun 클래스 package com.kh.chap01.file.run; import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; // 자바 코드로 간단하게 파일 만드는 과정(java.io.File 클래스) public class FileRun { public static..

    [8/18 시험 안내]

    8/18(목) 시험 시험 유형[2단위] ~다음 주 중에 배울 채팅 만드는 것까지 시험 범위 프로그래밍 언어 응용: 서술형 3개, 문제 해결 시나리오 1문제 네트워크 프로그래밍 구현: 서술형 3개, 문제 해결 시나리오 1문제 서술형: 강의 시간에 한 필기 기준 문제 해결 시나리오: 문제가 있는 코드를 제공하면 어디서 뭐가 잘못됐는지 원인 찾아서 어떻게 고쳐야 하는지 구체적으로 기술할 것 **시험 때 이클립스 사용 불가 **시험 소요 시간 아직 미정이나 오전 2시간, 오후 2시간일 듯?

    [Java] 11_예외처리(Unchecked/Checked Exception)

    11_예외처리(Exception) 프로그램 에러 프로그램 수행 시 치명적 상황이 발생하여 비정상 종료 상황이 발생한 것 *예외 클래스 계층 구조 (== 상속) Exception과 Error 클래스 모두 Object 클래스의 자손이며 모든 예외의 최고 조상은 Exception 클래스 반드시 예외 처리해야 하는 Checked Exception과 해 주지 않아도 되는 Unchecked Exception으로 나뉨 => 시스템 오류는 코드상의 잘못이 아니니까 예외 처리 불가능 * 에러(오류) 종류 - 시스템 에러: 컴퓨터의 오작동으로 인해 발생하는 에러 => 소스코드로 해결이 안 됨, 개발자의 코드 잘못이 아닌 컴퓨터 문제(심각한 에러) - 컴파일 에러: 소스코드상의 문법적인 문제로 발생하는 에러 => 소스코드 ..

    [Java] 10_기본 API(Math, StringPool, StringMethod, StringTokenizer, Wrapper-parsing, Date)

    10_기본 API API: Application Programming Interface (== 라이브러리, 개발에 자주 사용되는 인터페이스의 모음) Math 클래스 테스트 package com.kh.chap01.math.run; // import java.lang.Math // 왜 얘를 import 안 해도 Math.PI가 실행되는 걸까? // => import java.lang.*; // => 생략 가능! 보이진 않지만 항상 import가 되어 있음 // java.lang.Math 클래스 테스트 public class MathRun { public static void main(String[] args) { // Math 클래스 (수학과 관련) 에서 제공하고 있는 유용한 기능들에 대해서 살펴보자! //..

    [Java] 09_다형성(추상 클래스와 인터페이스)

    09_다형성(Polymorphism) Sports 클래스 (== 부모 클래스) package com.kh.chap02.abstractAndInterface.part01.basic.model.vo; // public class Sports { public abstract class Sports { // 추상 클래스(abstract 키워드) // 필드부 private int people; // 스포츠에 참여하는 선수 명 수 // 생성자부 public Sports() { } public Sports(int people) { this.people = people; } // 메소드부 // getter/setter, toString() 오버라이딩, 규칙을 출력하는 public void rule 메소드 public ..

    [Java] 09_다형성(Polymorphism)

    09_다형성(Polymorphism) 다형성: 많은 모양을 가지고 있는 특징 (== "상속관계 간의" 형 변환) 다형성은 전제 조건으로 상속이 깔려야 함! (중요) *객체지향프로그래밍(Object Oriented Programming, OOP) 3대 요소 => 캡슐화, 상속, 다형성 *다형성 같은 자료형에 여러 가지 객체를 대입하여 다양한 결과를 얻어내는 성질 => "상속" 관계에서만 이루어질 수 있는 "형 변환"의 개념! 명심할 사항: 대입연산자 (=) 기준으로 왼쪽과 오른쪽의 자료형은 같아야 함 Parent 클래스 package com.kh.chap01.poly.part01.basic.model.vo; public class Parent { // 필드부 private int x; private int..

    [Java] 08_상속(Inheritance, 오버라이딩)

    08_상속(Inheritance) 매 클래스마다 중복된 코드들을 일일이 기술하면 수정과 같은 유지보수 시 매번 일일이 찾아서 수정해야 한다는 번거로움이 생김 => "상속"이라는 개념을 적용시켜서 매 클래스마다 중복된 필드, 중복된 메소드들을 단 한 번 또 하나의 클래스로 정의해 둔 후 해당 클래스를 가져다 쓰는 방식으로 진행 *상속 다른 클래스가 가지고 있는 필드, 메소드들을 새로 작성할 클래스에서 직접 만들지 않고 이미 만들어진 클래스에서 "상속" 받음으로서 자신의 필드, 자신의 메소드처럼 사용 가능한 개념 => 즉, 코드를 물려받겠다 * 코드를 물려받는 측 -------> 코드를 물려주는 측 자식 부모 후손 조상 하위 상위 // 부모 클래스: 세 클래스 모두 공통적으로 기술했던 요소들만 추출해서 단 ..

    [Java] 06_객체(생성자, 메소드, 오버로딩), 07_객체 배열(oneVsmany)

    *생성자 메소드명이 클래스명과 동일하고 리턴 자료형이 없는 public 메소드 객체가 생성될 때 (new문을 쓸 때) 호출되는 메소드 [ 표현법 ] public 클래스명(매개변수 => 생략 가능) { 객체를 생성할 때 내가 실행하고자 하는 코드; (내가 원하는 값으로 필드를 초기화하는 코드를 주로 씀) } 생성자를 작성하는 목적 1. 객체를 생성해 주기 위한 목적(new문을 쓸때 함께 쓰임) // Product p1 = new Product(); 구문에서 new 뒤의 Product()생성자임! 2. 객체 생성뿐 아니라 매개변수로 전달한 값을 곧바로 필드에 초기화할 목적 *생성자 작성 시 주의사항 1. 반드시 클래스명과 이름이 동일해야 함 (대소문자 구분) 2. 반환형이 존재하지 않음 (메소드와 유사하게 ..

    [Java] 06_객체(캡슐화, 클래스 실습, 필드, 접근 제한자)

    06_객체(캡슐화) *setter 메소드 Student 클래스 package com.kh.chap02.encapsulation.model.vo; // 캡슐화 과정을 거친 Student 클래스 public class Student { // 필드부 /* * 필드: 클래스 안에 바로 선언해 두는 변수 * (== 멤버변수 == 인스턴스 변수) * * [ 표현법 ] * 접근제한자 자료형 필드명; */ private String name; private int age; private double height; // 생성자부 // 메소드부 /* * 각 기능(기능 단위 == 메소드)을 구현하는 부분 * * [ 표현법 ] * 접근제한자 반환형 메소드명(매개변수 => 생략 가능하나 적을 때는 짝 맞춰서 값 잘 넣어 줘야 ..

    [Java] 06_객체(개념과 추상화, 대입)

    06_객체 chap01. 객체지향언어 객체: 클래스에 정의된 대로 new 연산자를 통해 메모리 영역에 생성된 것 => 참조 자료형 변수 객체는 변수다! 로 생각하면 편함 \명심해야 할 것: 객체를 어렵게 생각하지 말자! 단지 참조형 "변수"일 뿐이다! 명심해야 할 것: 객체를 어렵게 생각하지 말자! 단지 참조형 "변수"일 뿐이다! 1. 객체지향언어: "객체"를 "지향(추구)"하는 언어로 "객체중심"으로 돌아간다. 2. 객체란?: 사전적 의미로는 현실세계에 독립적으로 존재하는 (목적이 있고 의미가 있는) 모든 것들을 의미(무형, 유형, 사물, 개념, ...) 3. 객체지향 프로그래밍: 현실세계의 독립적인 존재들(객체)간의 상호작용(행위) => 현실세계의 것들을 프로그래밍을 통해 가상세계(코드)로 구현하는 ..