programming

    [DAY 07] Stack and Queue (Version 1.1)

    Main.java 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778package day_07_homework; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Memory me = null; MyStack ms = new MyStack(); MyQueue mq = new MyQueue(); int data; do { Sys..

    [Java] static, final, 다형성

    10. static, final, 다형성 10.1 static 10.1.1 static 정지상태, 고정적인, 변화가 없는 static의 반대말: dynamic 10.1.2 static member static variable(정적 변수) 어디서든 공유해서 사용할 수 있는 변수 static method(정적 메서드) 10.1.3 static member의 특성 프로그램이 실행되면 메모리(클래스 영역)에 자동으로 로딩됨 프로그램이 끝날 때까지 메모리에 상주함 static method에서는 static member만 사용 가능함 10.1.4 dynamic member의 특성 프로그램 실행 중에 필요할 때 만들어지고 필요없으면 삭제됨 stack, heap 영역에 저장됨 10.2 JVM(Java Virtual M..

    [Java] class(상속)

    9. class(상속) 9.1 상속(Inheritance) 9.1.1 상속의 정의 class Child extends Parent { // (...) } 기존의 클래스를 확장하여 새로운 클래스를 작성하는 것(코드 재사용) 두 클래스를 부모와 자식으로 관계를 맺어주는 것 자식은 부모의 모든 멤버를 상속받는다(생성자와 private 제외, protected는 가능함). 1개의 클래스만 상속받을 수 있음(다중상속 금지) 부모클래스(기본클래스, Parent) 자식클래스(파생클래스, Child) 9.1.2 다중상속 자바에서는 다중상속이 금지됨(C++에서는 가능) 9.1.3 is a 관계 상속관계가 있는 클래스들은 자식클래스 is a 부모클래스의 관계로 정의될 수 있음 Student is a Person(O) Pe..

    [Java] 생성자(Constructor)

    8. 생성자(Constructor) 8.1 생성자(Constructor)의 특징 특별한 형태의 method 클래스 이름과 같은 method 리턴타입이 없음(void라고 할 수 있음) object가 생성될 때 자동호출됨(개발자가 직접 호출할 수 없음) new 클래스이름() new 클래스이름: object 생성 클래스이름(): 생성자가 호출됨 용도: 객체의 초기화 작업(기본작업)을 처리 8.2 기본 생성자(default constructor) 매개변수가 없는 생성자 클래스에 생성자가 하나도 없으면 컴파일러가 기본 생성자를 추가한다. 생성자가 하나라도 있으면 컴파일러는 기본 생성자를 추가하지 않는다. class DefaultConstructor { int x; public void setX(int x) { t..

    [Java] 클래스와 객체

    7. 클래스와 객체 7.1 객체지향프로그래밍(Object Oriented Programming)의 개요 7.1.1 소프트웨어 위기(software crisis) 7.1.1.1 소프트웨어 위기 소프트웨어 규모의 대규모화, 복잡화에 따른 개발비용 증대 하드웨어 비용에 대한 소프트웨어 가격 상승폭 증가 유지보수의 어려움과 개발정체 현상 발생 프로젝트 개발 및 소요예산 예측의 어려움 신기술에 대한 교육 및 훈련의 부족 7.1.1.2 객체지향프로그래밍은 소프트웨어 위기를 해결하기 위한 방안의 하나임 유지보수 비용의 감소 7.1.2 객체지향프로그래밍(Object Oriented Programming, OOP) 과학, 군사적 모의실험(simulation)을 위해 컴퓨터를 이용한 가상세계를 구현하려는 노력으로부터 객체..

    [Java] Method

    6. Method 6.1 Method 6.1.1 Method의 정의 작업을 수행하기 위한 명령문의 집합 어떤 값을 입력받아서 처리하고 그 결과를 돌려준다. 입력받는 값이 없을 수도 있고 결과를 돌려주지 않을 수도 있다. Method = Function 6.1.2 메서드의 장점 반복적인 코드를 줄이고 코드의 관리가 용이하다. 반복적으로 수행되는 여러 문장을 메서드로 작성한다. 6.1.3 Method의 구성 6.1.4 Method 호출(call) 6.1.4.1 값에 의한 호출(call by value) - 데이터 복사(깊은 복사) 6.1.4.2 주소값에 의한 호출(call by reference, call by address) - 데이터 참조(얕은 복사) 6.1.5 Method의 매개변수(Parameters..

    [Java] 배열(Array)

    5. 배열(Array) 5.1 배열이란? 5.1.1 배열의 정의 다수의 데이터를 저장하고 처리하기 위하여 같은 자료형의 여러 변수를 하나의 묶음으로 다루는 것 예) 단독주택과 아파트 5.1.2 대량의 데이터를 처리할 때 유용 5.2 배열의 선언과 생성 5.2.1 배열참조변수 자료형[] 배열참조변수; 배열참조변수는 stack 영역에 생성됨 int num; 선언방법 선언 예 타입[] 변수이름; int[] score; String[] name; 타입 변수이름[]; int score[]; String name[]; 5.2.2 배열의 생성 배열참조변수 = new 자료형[데이터의 개수]; new로 생성한 배열 데이터는 heap 영역에 생성됨 num = new int[5]; 5.2.3 배열참조변수의 선언과 배열 생성..

    [Java] 조건문과 반복문

    4. 조건문과 반복문 4.1 if 조건문 4.1.1 조건식이 true일 경우에만 실행됨 /** * Syntax: The if Statement * * if: Java keyword * condition: boolean expression * statement: executed if the condition is true and skipped otherwise */ if (condition) { statement } 4.1.2 if ~ else(양자택일형) 4.1.3 다양한 조건의 if문 4.1.4 중첩 if(nested if) if문 안에 또 다른 if문을 중첩해서 넣을 수 있다. if (조건식1) { // 조건식1의 연산결과가 true일 때 수행될 문장들을 적는다. if (조건식2) { // 조건식1과..

    [Java] 연산자(operator)

    3. 연산자(operator) 3.1 연산자와 피연산자 3.1.1 연산자(Operator) 어떠한 기능을 수행하는 기호(+, -, *, / 등) 3.1.2 피연산자(항, Operand) 연산자의 작업 대상(변수, 상수, 수식 등) a + b 3.2 연산자의 종류(항의 갯수에 따른 분류) 3.2.1 단항 연산자 항이 1개인 연산자 +, -, (자료형), ++, --, ~, ! 3.2.2 이항 연산자 항이 2개인 연산자 산술: +, -, *, /, %, , >>> 비교: >, =, = 0) ? x : -x; if (x >= 10) { result = x; } else { result = -x; } 3.3 연산자의 종류(기능에 따른 분류) 3.3.1 산술 연산자 + 덧셈 - 뺄셈 * 곱셈 / 나눗셈 % 나머지..

    [Java] 자료형과 변수

    2. 자료형과 변수 2.1 정보의 저장 단위 bit(Binary digIT) : 전산학 분야에서 사용되는 정보의 최소저장단위 8bit = 1byte 1024byte = 1KB(킬로바이트) 1024KB = 1MB(메가바이트) 1024MB = 1GB(기가바이트) 1024GB = 1TB(테라바이트) 1024TB = 1PB(페타바이트) 1024PB = 1EB(엑사바이트) 1024EB = 1ZB(제타바이트) 2.2 변수와 상수 2.2.1 변수(Variable) 변하는 값 하나의 값을 저장할 수 있는 기억공간 2.2.2 상수(Contstant) 변하지 않는 값 final int NUM = 100; 2.3 변수의 type(Data Type) 문자형: char 숫자형 정수형: byte, short, int, long ..

    02. Introduction to Java Applications; Input/Output and Operators

    콘솔 : 컴퓨터로 데이터를 입력하고 컴퓨터로부터 데이터를 확인하는 장치 ex. 키보드, 모니터. 마우스 등 day 02다형성 : 개발자와 사용자가 코딩하기 편하다. ex ) overloading, 다형성하면 크게 말할수있는 거 대표적인 것 2가지 : 오버라이딩, 동적 바인딩대표적인 건 꼭 쓰라는 얘기다 자바는 접근 지원자(access modifier) 4가지가 있다(접근 지원자 쓰는 이유 : 내가 컨트롤하겠다)private : ex. datadefault : 안에 있는 것들은 쓸 수 있다protectedpublic (package? folder다) 내부 외부 private o x default o 같은 패키지 내에서는 접근가능 protected o 상속받은 자식은 접근가능단, 자식 클래스만 접근가능 pu..

    [Java] Java의 개요

    본 게시글은 2020년 7월 20일 기준으로 업데이트 되었습니다. 1. Java의 개요 1.1 컴퓨터의 구조 1.2 프로그래밍 언어 1.2.1 프로그래밍 언어 컴퓨터와의 의사 소통을 위한 수단 1.2.2 프로그래밍 언어의 발전 1972년 C(Bell 연구소, 절차지향적인 언어 - 함수 중심) 1983년 C++(Bell 연구소, 객체지향적인 언어 - 클래스 중심) 1995년 Java(Sun Microsystems), 2009년 Oracle에서 인수 2002년 C#(Microsoft) 1.2.3 컴파일러(Compiler) 소스 코드를 컴퓨터가 이해할 수 있는 바이트 코드로 변환하는 프로그램 1.3 Java 개발 환경 설정 1.3.1 Java SDK(Software Developer Kit)의 분류 Java ..