자바에서 상속하여 클래스를 사용할 경우 super super() 는 자식클래스가 부모 클래스에 접근하기 위해 사용된다. super 부모클래스의 멤버와 자식클래스의 멤버의 이름이 동일한 경우, 구별할 수 있으며 부모클래스의 멤버에 접근할 때 사용한다. super() 자식클래스에서 명시적으로 부모 생성자를 호출하는 경우 사용한다. 부모클래스에서 선언된 변수인 경우에는 자식클래스에서 초기화하지 않고 super()를 초기화를 할 수 있다. super()은 생성자 코드의 첫 줄에 사용되어야 한다 public class Pet { String name; int age; public Pet() { } public Pet(String name, int age) { this.name = name; this.age = a..
객체 지향 프로그래밍 (Object Oriented Programming, OOP)은 각각의 기능들을 객체화하여 main 함수에서 객체화 시킨 기능들을 호출하며 사용하는 프로그래밍 기법으로 캡슐화, 상속, 다형성의 특징을 가지고 있다.캡슐화 (Encapsulation)자바에서의 캡슐화란, 값의 보호를 위해 객체의 필드, 메소드를 필요에 의해 감추거나 들어내는 것(은닉성)을 말한다. 필드와 메소드를 보호하는 이유는 외부로부터의 잘못된 접근으로 인해 객체의 데이터나 메소드에 유효하지 않은 값이 들어가서 시스템 전체에 영향을 끼치는 것을 방지하기 위해서이다. 클래스 내의 변수나 함수를 감추거나 드러내는 은닉성은 자바에서 접근제어자를 통해 실형시킬 수 있다. * 접근제어자public : 모든 클래스에서도 접근 ..
static static 은 정적, 고정된이란 의미이다. static 키워드를 이용해 static 변수와 static 메서드를 생성할 수 있는데 이를 정적 멤버 (=클래스멤버)라고 한다. static 키워드를 통해 생성된 정적 멤버들은 heap 영역이 아닌 static 영역에 생성된다. static 영역에 할당된 메모리는 모든 객체가 공유할 수 있다. 객체 생성 시 할당된 heap영역의 메모리는 Garbage Collector를 통해 관리를 하지만 static 영역에 할당된 메모리는 관리 영역 밖에 존재하므로 static을 자주 사용하면 프로그램의 종료 시까지 메모리가 할당된 채로 존재한다. ✨ 특징 프로그램 실행 시 생성되어 종료 시 소멸 단 한 번만 생성 클래스명으로 접근 가능 자동초기화 여러 인스턴..
접근 지정자 (= 접근제어자) 자바 클래스의 멤버 각각에 외부에서 접근할 수 있는 범위를 지정하는 접근 지정자를 둘 수 있다. 다음과 같은 네 가지가 있다. public: 어디에서든 자유롭게 접근 가능 protected: 같은 패키지 내, 다른 패키지에서 상속을 받은 클래스 내부에서 사용 가능 default: 같은 패키지 내 사용 가능 private: 동일 클래스 내 사용 가능 권장하는 변수의 접근지정자 로컬변수 : 접근지정자 사용불가 인스턴스 변수 : private 권장 👉 외부에서 직접 접근하면 쓰레기값이 저장될 수 있기 때문 클래스(static) 변수 : public 권장 은닉화 은닉화란 값의 보호를 위해 객체의 필드, 메소드를 하나로 묶고 감추는 것을 말한다. private 지정자를 사용하면 해당..
생성자 (Constructor) 생성자는 인스턴스 변수를 초기화 시키는 역할을 한다. new 를 통해 객체의 인스턴스를 생성할 때 반드시 호출이되는 메소드이다. 생성자는 반드시 클래스명과 동일하게 정의한다. 생성자를 생략하면 컴파일러가 자동적으로 기본 생성자를 생성한다. 생성자의 매개변수를 다르게 지정하여 정의하는 것을 생성자 오버로딩이라 한다. public class Cat { String name; int age; // 생성자 public Cat() { // 클래스명과 동일하게 정의 } // 생성자2 public Cat(String name, int age) { // 오버로딩 this.name = name; this.age = age; } } public class Main{ public static..
데이터 타입은 변수에 저장할 데이터가 메모리에 어떻게 저장되고 어떻게 처리되어야 하는지 명시적으로 알려준다. 이 데이터 타입은 기본형타입과 참조형타입으로 구분된다. 기본형 타입 기본형 타입에는 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double)로 나뉜다. 모든 값은 메모리의 스택(stack) 에 저장 변수 선언과 동시에 메모리 생성 null 값을 가질 수 없다. 참조형 타입 참조형 타입에는 클래스, 배열, 인터페이스 등 기본형 타입을 제외한 나머지이다. 실제 값은 메모리의 힙(heap)영역에 저장하고, 영역의 주소값을 스택(stack)에 저장 참조형 변수는 null로 초기화 가능
클래스 내의 멤버 변수를 제외한 나머지 변수들은 모두 로컬변수이고, 멤버변수 중 static 키워드를 사용한 것은 클래스변수 그렇지 않은 것은 인스턴스 변수이다./* 클래스 영역 */class Variables { int a; // 인스턴스 변수 static int b; // 클래스 변수 /* 메서드 영역 */ void method() { int c = 0; // 로컬 변수 }} 로컬 변수메서드 안에서 선언된 변수메서드가 호출될 때 생성되고 메서드가 종료될 때 제거스택 stack 메모리에 저장기본적으로 메서드 블록 scope를 따른다반드시 사용 전에 초기화 필수 인스턴스 변수메서드 밖에서 선언된 변수객체 생성할 때 생성되고 객체..
객체 Object 객체지향이론에서는 소프트웨어 세계에 구현할 대상으로 사물과 같은 유형적인 것 뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다. 클래스 Class객체를 정의해놓은 것으로 객체의 설계도 또는 틀이라고 할 수 있다. 클래스에는 객체와 연관되어 있는 변수와 메소드 그리고 생성자가 있다. 인스턴스 Instance객체가 메모리에 할당되어 실제 사용될 때 인스턴스 라고 한다.인스턴스는 어떤 원본(추상적인 개념)으로부터 생성된 복제본을 의미한다클래스로부터 객체를 만드는 과정을 클래스의 인스턴스화 라고 하며, 만들어진 객체를 그 클래스의 인스턴스라고 한다./* 클래스 */public class Cat { // 인스턴스 변수 String name; int age; ..
AJAX 통신을 이용하여 yyyymmdd 형태로 날짜를 입력하면 해당 날짜의 영화 TOP 10 에 대한 순위, 제목, 개봉일을 출력해보자. var httpRequest = null; function req() { // XMLHttpRequest 객체 생성 httpRequest = new XMLHttpRequest(); // 응답 시 처리하는 콜백함수 설정 httpRequest.onreadystatechange = responseFunc; // 요청정보 설정 var date = document.querySelector("#date").value; var url = `https://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOf..
AJAX 란? AJAX (Asynchronous Javascript And Xml)은 비동기식 자바스크립트와 xml라는 의미로 자바스크립트를 이용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신 기능이다. 브라우저가 가지고 있는 XMLHttpRequest객체를 이용하여 전체 페이지를 새로고침없이 페이지의 일부만을 위한 데이터를 로드하는 기법이다. 💡 동기 통신 vs 비동기 통신 동기 통신 : 웹 페이지를 새로고침하면서 데이터를 불러오는 방식 성능 저하 (사용자의 무한 대기 가능성有) 응답의 실체는 html 문서 👉 html 문서를 재랜더링 비동기 통신 : 웹 페이지를 새로고침 하지 않고도 데이터를 불러오는 방식 성능 향상 응답의 실체는 JSON 👉 html이 아니기 때문에 재랜더링 X ..
JSON JSON (JavaScript Object Notation) 은 데이터 포맷일 뿐이며 단순히 데이터를 표시하는 표현 방법 중 하나이다. 웹 애플리케이션에서 데이터를 전송할 때 일반적으로 사용한다 JSON 문법 { "key" : "value" } key값이나 문자열은 항상 " " (큰따옴표)를 이용하여 표기 데이터는 쉽표 , 로 나열, 객체는 중괄호 {}로 표현, 배열은 대괄호 []로 표현 # person 객체 생성과 속성(property), 기능(method) 작성 const person = { /* 속성 property */ "username" : "gangintheremark", "age" : 24, /* 기능 method */ // get 메서드 getusername: function ()..