프로그래밍 158

상속 ( Inheritance )

[ 상속 ] 상속은 클래스로부터 멤버변수와 메소드를 그대로 물려받아 상속받은 클래스에서 재사용 한다 라고 말 할수 있다. 이 때 상속받은 클래스는 자식클래스 또는 Sub Class라고 하고, 상속되는 클래스는 부모 클래스 또는 Super Class 라고 한다. 상속개념을 적용하면 코드 재사용성을 높이고 코드의 중복을 줄이며, 관리가 쉽다. 또한 버그를 줄여줄 수 있다. 자바는 상속 받을 수 있는 클래스는 단 하나이다. (즉 단일상속) * 현실세계의 계층구조를 나타내기 위해서 사용한다. * 상속은 의존성이 매우 높은 기법이다 : 부모클래스의 변경으로 인해 자식클래스에서 무슨 오류가 생길지 모르고, 부모 클래스는 자식 클래스를 알지 못함(상속은 매우 조심스럽게 사용해야 한다.) * 상속된 변수와 메소드는 원..

메소드 오버로딩(Method Overloading)

메소드 오버로딩(Method Overloading) 하나의 메소드로 파라미터의 개수, 타입, 파라미터 위치를 고려하여 여러개의 메소드를 만드는 것 메소드 구분 기준 메소드에서 고려해야 할 대상 - 메소드 이름, 파라미터, 파라미터 타입, 파라미터 위치 메소드에서 고려해야 할 대상 - 리턴값은 고려 대상이 아님 - 접근제한자 아래의 코드를 보면 눈으로 보면 알겠지만 다른사람이 사용한다고 생각해봐라 ...... 다 기억하겠는가? -> 바람직하지 않은 방법이다 class Test { public int sum1(int a, int b) { } public int sum2(int a, int b, int c) { } public int sum3(int a, int b, int c, int d) { } } 그래서..

캡슐화(Encapsulation)

캡슐화(Encapsulation) 접근 제한자(Access Modifer)를 사용하여 객체의 멤버변수와 메소드를 하나로 묶고 실제 구현 내용을 감추어 외부에서는 객체가 노출해서 제공하는 멤버변수와 메소드만 이용할 수 있게 하는 것 캡슐화의 목적 1) 접근제한자를 사용하여 객체의 데이터를 외부로부터 보호하기 위함(정보은닉 information hiding) 2) 멤버변수와 메소드를 묶어 개발자는 코드 재사용을 편하게 하려는 것과, 사용자에게 필요한 기능만 제공하기 위함

자바스크립트 함수(중요함)

[ 함수 ] 함수는 여러개의 인자를 받아서, 그 결과를 출력함. 선언되어있고 할당되지 않은 것은 undefined //함수 선언 function printName(yourName) { var myName = "jin su"; return myName + " " + yourName; } console.log(printName()); //undefined console.log(printName("Seo")); console.log(printName("one", "two")); // No Error 함수 표현식 (호이스팅) // 함수 표현식 function printName(yourName) { console.log(innerFun); // undefined var innerFun = function() { ..

자바스크립트 기초

[ 자바스크립트 ] - 자바스크립트 버전은 ECMAScript(ES)의 버전에 따라서 결정되고, 이를 자바스크립트실행 엔진이 반영한다. - 2018년 중심으로 ES6를 지원하는 브라우저가 많다. - ES6는 ES5 문법을 포함하고 있어 하위호환성 문제가 없다. 다만 feature별로 지원하지 않는 브라우저가 있을 수 있어 조심 해야함 [ 변수 ] - var, let, const 로 선언할 수 있다. - scope라는 변수의 유효범위가 달라진다. var a = 1; var a = "abc"; var a = true; var a = []; var a = {}; var a = undifiend; [ 연산자 ] - 연산자 우선순위를 표현할 때 ()를 사용 - 수학 연산자는 +,-,*,/,% 등이 있다. cons..

정적바인딩 원형 큐(Circulation Queue)

public class Memory { // 원형 큐의 후단을 관리하기 위한 인덱스 // 스택의 전단과 후단을 관리하기 위해 사용하는 인덱스 protected int rear; protected int[] arr; protected int maxSize; public Memory(int num) { rear = 0; maxSize = num; arr = new int[num]; } public void push(int num) { rear = (rear + 1) % maxSize; arr[rear] = num; } public void disp() { for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + "\t"); } System.out.p..

자료구조 2020.02.18

Stack (노드 개념 적용)

* isEmpty 부분은 비어두었습니다 .. 귀찮아서 public class Node { // 데이터 필드와 , 링크 필드로 구성된다. public T data; public Node next; public Node(T item) { data = item; next = null; } } public class MyStack { // 스택의 top을 가리키는 노드 public Node top; public int size; public MyStack() { top = null; size = 0; } public void push(T item) { Node newItem = new Node(item); newItem.next = top; top = newItem; size++; } public T pop()..

자료구조 2020.02.18