언어 17

추상클래스와 interface 의 차이?

추상클래스 & 추상메서드이때까지 사용한 일반적인 클래스는 구체적 으로 데이터를 담아 인스턴스화 하여 직접 다루는 클래스이다.그 반대로 추상클래스는 구체적이지 않은 추상적인(abstract) 데이터를 담고 있는 클래스이다.그래서 추상클래스는 일반 클래스와 다르게 인스턴스화가 불가능하다.추상 클래스는 클래스에 추상화를 접목 시켜 구조적이게 객체를 설계하고 , 그 프로그램의 유지보수성을 올려주며만일 프로그램에 어떠한 기능을 업그레이드 한다고 하면 수정/추가에 대해 유연하게 만들어주며 더 퀄리티가 높은 프로그램을 개발할 수 있게 해준다.그렇기에 추상 클래스는 개별 프로젝트 보다는 범용 라이브러리나 프레임워크 시스템을 설계하는데 많이 사용된다. 추상클래스 & 추상메서드 기본문법클래스명과 메서드명 앞에 abstra..

언어/Java 2024.09.23

생성자란?

생성자란?생성자는 객체가 생성될 때 자동으로 호출되는 특수 목적의 멤버함수로 객체의 초기화를 위해 사용된다. 생성자의 특징생성자의 이름은 클래스 이름과 동일해야 합니다.생성자는 다른 멤버함수(메소드)와는 다르게 리턴 타입이 없습니다.생성자는 객체가 생성될때 자동으로 한번 호출됩니다.생성자는 매개변수 조건에 따라 여러개를 작성할 수 있습니다. (오버로딩)생성자는 클래스에 최소 1개는 있어야 하며, 생성자 코드가 없을 경우 컴파일러가 기본생성자를 자동으로 생성합니다.(주의할점은, 생성자 코드가 1개라도 작성되어 있다면, 컴파일러는 기본생성자가 없다고 하더라도 기본생성자를 자동으로 생성하지 않습니다.)생성자의 종류생성자에는 기본 값을 초기화시켜주는 기본 생성자와 매개변수를 가진 생성자가 있다.이 때 만드는 객..

언어/Java 2024.09.23

Java 의 기본 . Class

java class 란 ?자바를 배울 때 가장 중요하면서도 기초적인 부분이다.변수(데이터,속성)와 메서드(행위)를 가지고 있는 집합이다.객체를 생성하기 위한 틀이다class 키워드로 정의하고 new 연산자를 통해서 인스턴스를 생성한다자바는 클래스들의 모임으로 이루어져 있다.※ 클래스에서 객체를 생성하는 과정을 인스턴스화라고 하며, 생성된 객체를 인스턴스라고 한다.예를들어 붕어빵을 만들기 위해서는 붕어빵틀이 필요하다.여기서 붕어빵틀이 클래스(class)이고 이 붕어빵틀로 인해 만들어진 붕어빵을 객체(Object)라고 한다.붕어빵틀 -> 클래스(Class)붕어빵 -> 객체(Object)public class fishBread { // Class키워를 사용하여 정의한다.(Class Name) ..

언어/Java 2024.09.23

getter 와 setter 란?

getter : private로 설정한 변수 값을 읽어오는데 사용하는 메서드public int getAge(){return this.age;}setter : 외부에서 접근하여 조건에 맞을 경우 데이터 값을 변경할 수 있도록 하는 메서드public void setAge(int age){this.age = age;} 여기서 this.age 가 필드변수 age를 참조하는 변수이다 !  두 메서드를 따로 사용할 수도 있지만 setter 로 데이터 값을 설정해주고 getter 로 값을 불러오는 식으로도 사용한다. 그리고 만약 private로만 이루어진 class 의 객체를 생성했을 때는getter 와 setter 메소드 없이는 데이터 값을 불러올 수 없다.

언어/Java 2024.09.23

객체 지향프로그래밍이란?

객체 지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 그렇다면 객체란?객체는 프로그램에서 사용되는 데이터 또는 식별자에 의해 참조되는 공간을 의미하며 값을 저장 할 변수와 작업을 수행 할 메소드를 서로 연관된 것들끼리 묶어서 만든 것을 객체라고 할 수 있다. 간단히 비유해보자면 객체를 레고라고 한다면 , 객체지향 프로그램은 레고의 조각을 조립해서 무언가를 만드는 방식을 객체지향 프로그램이라고 한다.

언어/Java 2024.09.19

메소드 오버로딩(Overloading) , 오버라이딩(Overriding)

메소드 오버로딩이란?처음 Java를 배울 때 변수를 선언할 때 변수명이 중복되게 선언하면 오류가 발생했다.하지만 메소드는 이름이 같더라도 매개변수의 개수 또는 타입이 다르면같은 이름을 사용해서 같은 이름이지만 여러 기능을 가진 메소드를 사용할 수 있게 되는데,이를 메소드 오버로딩이라고 한다. 예를 들어보자.package smile; public class Test { public static void main(String[] args) { Test t = new Test(); t.something(); t.something(10); t.something(10,10); t.something(10,10.1); } void som..

언어/Java 2024.09.19

24-08-27 월

오늘은 시험 날 !거의 한달만에 java 복습 , 학원에서 못들었던 특강을 다시 듣고있는 중이다.현재 메소드 오버라이딩에 대해서 보는중..부모 와 자식 class 간 누가 더 큰 범위냐?자식일 것 같지만 부모임. 부모가 모든 자식 class를 수용하고 있기 때문에.오버라이딩 없으면 그냥 부모함수 사용오버라이딩 되어있으면 자식class에서 설정한 내용이 입력되어출력을 할 때 자식 class에서 덮어쓴 내용만 출력된다.컴파일 시점 = 여기가 일단 먼저 , 기계어로 변환하는 과정 , 정적 바인딩런타임 시점 = 프로그램 실제로 실행 시점 , 동적 바인딩Nocasting : 객체 생성 시 자기 자신 참조Upcasting : 하위 클래스의 객체를 상위 클래스 타입으로 변환 하는 것.Downcasting : 상위 클..

언어/Java 2024.08.28