[자바/JAVA] 정적 바인딩 VS 동적 바인딩 (의의, 장/단점)
·
개발 지식/Java
바인딩 바인딩(Binding)이란 프로그램에 사용된 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위를 의미한다. 프로그램에서 사용되는 변수나 메소드 등 모든 것들이 결정되도록 연결해주는 것을 뜻한다. 바인딩이 되는 시점에 따라 정적 바인딩과 동적 바인딩으로 구분된다. 정적 바인딩 정적 바인딩(Static Binding)이란 컴파일 시 호출되는 바인딩을 뜻한다. 정적 바인딩의 형태로는 static, final, private method가 있다. class Person{ // static public static void hello() { System.out.println("안녕하세요 :)"); } } class Kim extends Person{ public static void hello(){ Sy..
[자바/JAVA] 추상 클래스 VS 인터페이스 (특징, 사용하는 이유, 차이점)
·
개발 지식/Java
추상 클래스란 추상 클래스(Abstract Class)란 추상 메소드를 선언하여 상속을 통해서 자식 클래스에서 완성하도록 유도하는 클래스이다. 추상 클래스는 미완성된 설계도라고 표현하기도 한다. 추상 클래스는 상속을 위한 클래스이기 때문에 따로 객체를 생성할 수 없다. 사용방법 추상 클래스는 "abstract"를 붙여 정의한다. class 앞에 "abstract" 예약어를 붙여 해당 클래스가 추상 클래스임을 밝힌다. 메소드에 "abstarct" 예약어를 붙이면 추상 메소드를 선언할 수 있다. // 추상 클래스 abstract class Person{ // 추상 메소드 public abstact void hello(); } 추상 클래스으로 상속 받을 때 "extends" 키워드를 사용한다. 추상 클래스를 ..
[자바/JAVA] final 의미와 사용법
·
개발 지식/Java
final이란 final은 Java에 불변성을 확보하기 위해서 사용한다. 클래스나 변수에 사용하면 처음 정의된 상태 변하지 않게 보장된다. final은 변수, 메소드, 클래스에 부여할 수 있는데, 어느 위치에 선언되는지에 따라 기능이 달라진다. final이 사용되는 3가지 경우 변수 final 변수는 한번 값을 할당하면 수정할 수 없다. 즉, 첫 초기화 이후, 재할당이 불가능해진다. final String name = "개발견"; // 컴파일 에러 name = "견발자"; 사용 이유 값을 수정할 필요가 없는 동일한 데이터를 가져야 하는 경우 사용되며, static과 함께 써서 상수를 선언하기 위해서도 사용된다. 메소드 자식 클래스에서 final 키워드가 사용된 부모의 메소드는 오버라이딩이 불가능하다. /..
[자바/JAVA] 변수의 선언 위치 (클래스 변수, 인스턴스 변수, 지역 변수)
·
개발 지식/Java
선언 위치에 따른 변수 종류 Java에서는 선언 위치에 따른 변수 종류는 총 3가지가 있다. 멤버변수를 제외한 나머지 변수들은 모두 지역변수(local variable)이다. 멤버변수 중 static이 붙은 것은 클래스 변수(class variable)이다. 멤버변수 중 static이 붙지 않는 것은 인스턴스 변수(instance variable)이다. 변수의 종류 선언 위치 생성 시기 메모리 위치 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 Method 영역 인스턴스 변수 인스턴스가 생성되었을 때 Heap 영역 지역 변수 블럭 내부 변수 선언문이 수행되었을 때 Stack 영역 class Person{ // 클래스 변수 static String name; // 인스턴스 변수 double weig..
[자바/JAVA] 오버로딩(Overloading) VS 오버라이딩(Overriding)
·
개발 지식/Java
오버로딩이란? 오버로딩(Overloading)이란 하나의 클래스 내에서 같은 이름으로 메소드를 여러 개 정의하는 것을 뜻한다. 일반적으로 하나의 클래스 내에서 같은 작명으로 메소드를 정의하면 에러가 발생한다. 하지만 오버로딩의 조건을 만족하면 같은 이름의 메서드를 여러 개 정의할 수 있다. 오버로딩(overloading) 조건 메소드의 이름이 같아야한다. 메소드 이름이 동일해도 정의가 가능하다. // 메소드 이름이 동일하다 public int overloadTest(){ reuturn 0; } public int overloadTest(int num){ return num; } public String overloadTest(String num){ return num; } 매개변수의 개수 또는 타입이 달..
[자바/JAVA] 클래스 VS 객체 VS 인스턴스
·
개발 지식/Java
클래스란? 클래스(Class)란 Java 프로그램에서 객체를 생성하기 위한 일종의 설계도이다. 객체가 가지는 필드와 메소드로 이루어져 있다.(생략될 수도 있고 하나 이상 작성 가능) 붕어빵(객체)을 만들기 위한 붕어빵 틀(클래스)이라고 비유된다. 필드 객체의 데이터가 저장되는 곳이다. 메소드 객체의 동작에 해당하는 실행 블록이다. class Person{ // 필드 String name; int age; int weight; int height; // 메소드 void hello(){ System.out.println("안녕하세요 :)"); } void bye(){ System.out.println("수고하세요~~~"); } } 객체란? 객체(Object)란 존재하는 사물 혹은 개념, 논리와 같은 추상적인..
[자바/JAVA] 객체 지향 언어이란? (특징, 장/단점)
·
개발 지식/Java
객체 지향 언어란? 사전적인 의미 소프트웨어를 객체 지향 방식으로 설계한 후 객체 지향의 특성(클래스, 객체, 상속, 추상화 등)을 잘 구현하는 데 사용되는 컴퓨터 프로그래밍 언어 객체 지향 언어(Object Oriented Language)는 객체를 중심으로 프로그래밍하는 언어를 의미한다. 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍 패러다임을 의미한다.컴퓨터를 만든다고 가정했을 때, 수많은 부품들의 결합과 연결로 하나의 완전한 컴퓨터가 만들어지는 것과 같다고 할 수 있다. 객체란? 객체란 Object, 즉 존재하는 사물 혹은 개념, 논리와 같은 추상적인 것들도 객체라 정의할 수 있다. 예를 들어 사람, 차, 책, 등 물리적으로 존재하는 것과 개..
[자바/JAVA] 변수란 무엇인가?
·
개발 지식/Java
변수란? 변수란 값을 저장하기 위해 이름을 할당받은 메모리의 공간을 의미한다. 즉, 변수란 데이터를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값을 변경될 수 있다. 데이터는 여러 타입을 가지고 있는데 하나의 변수에는 한 가지의 타입만 저장할 수 있다. 변수를 왜 사용해야하는가? 메모리에 안전한 접근 메모리에 저장된 값의 위치를 안전하게 접근하게 도와주기 때문이다. 코드의 재사용 코드의 재사용성을 높이고 유지, 보수를 용이하게 해주기 때문이다. System.out.println("개발견"); System.out.println("개발견"); System.out.println("개발견"); System.out.println("개발견"); System.out.println("개발견"); Syste..
[자바/JAVA] Java란 무엇인가요? 장점,단점
·
개발 지식/Java
Java란? - 1995년 썬 마이크로시스템즈에서 발표한 프로그래밍 언어이다. - Java는 JVM(Java Virtual Machine,자바 가상머신)을 사용하여 운영체제와 독립적으로 동작할 수 있다. 따라서 자바는 운영체제에 영향을 받지 않는다. - 풍부한 클래스 라이브러리(Java API)를 통해 강력한 기능의 프로그램을 작성할 수 있는 언어이다. Java의 장점 🔵 객체지향 프로그래밍 언어(OOP:Object Oriented Programming) - 객체를 만들기 위해서는 설계도인 클래스를 작성하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들 수 있다. - 객체지향 언어의 특징인 캡슐화, 상속성, 다형성을 완벽하게 지원한다. 🔵 운영체제가 독립적 - JVM(Java Virtual Mac..