BackEnd/Java 60

[Java]다형성(Polymorphism) 바인딩

바인딩이란 ?실제 실행할 메소드 코드와 호출하는 코드를 연결 시키는 것 정적 바인딩동적 바인딩프로그램이 실행되기 전 컴파일 단계에서 메소드와 메소드 호출부를 연결프 정적 바인딩된 메소드를 실행할 당시의 객체 타입을 기준으로 바인딩 되는 것 ※동적 바인딩 성립 조건상속 관계로 이루어져 다형성이 적용된 경우, 메소드 오버라이딩이 되어 있으면 정적으로 바인딩 된 메소드 코드보다 오버라이딩 된 메소드 코드를 우선적으로 수행업캐스팅 상태에서는 오버라이딩한 메서드가 우선권을 갖는다 #예제[Parent]package pkg1.dto;public class Parent { // 필드 private String lastName = "김"; private int money = 50000; // 기본 생성자 public..

BackEnd/Java 2024.07.31

[Java]반환형의 다형성(Polymorphism)

[Parent]package pkg1.dto;public class Parent { // 필드 private String lastName = "김"; private int money = 50000; // 기본 생성자 public Parent() { super(); // 부모(Object) 생성자 호출 } // 매개 변수 생성자 public Parent(String lastName, int money) { super(); this.lastName = lastName; this.money = money; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastNam..

BackEnd/Java 2024.07.30

[Java]매개 변수의 다형성 (Polymorphism)

#예제1[Service]package pkg1.service;import pkg1.dto.Child;import pkg1.dto.Parent;public class PolyService { /** [매개 변수의 다형성] * 객체가 가지고 있는 필드 정보 출력 * @param obj : Object 객체를 참조하는 참조 변수 * - Object -> 모든 클래스의 최상위 부모!! */ public void printObject(Object obj) { // Object obj가 참조할 수 있는 객체 // -> Object / Parent / Child // -> 왜? 다형성 - 업 캐스팅 때문에 참조 가능 System.out.println("-----------------------..

BackEnd/Java 2024.07.30

[Java]OOP 메서드(method)

[기능]package method;// class : 객체(속성, 기능)를 정의하는 문서 (=설계도)public class Student { /* 필드( == 멤버 변수) */ // 필드 1 - class변수(== static 변수) // -> 클래스명.변수명 형태로 호출하기 때문에 class 변수 public static String schoolName = "KH대학교"; public static final int MIN_VALUE = 0; // 스킬역량 최소값 public static final int MAX_VALUE =100; // 스킬 역량 최대값 // 필드 2 - instance 변수 // -> new 연산자에 의해서 생성된 객체(instance)의 변수 private String ..

BackEnd/Java 2024.07.25

[Java]OOP Static

1. static의 정의 1) 뜻 : 정적인 (움직임이 없다)  2) 특징 : 공유 static 붙은 필드/메서드는 프로그램 실행 시 * 모두 static 영역에 할당되고종료시 사라지게 됨  -> 프로그램 실행 중에는 절대 없어지지 않음 == 정적   객체가 생겼다/사라졌다 함 --> Heap 영역(동적)  - static 붙은 필드 / 메서드는 **프로그램 실행 시**  클래스명.필드명 / 클래스명.메서드명() 이름으로  static 영역에 할당(생성) 되어지고 어디서든 클래스명.필드명 / 클래스명.메서드명()으로  호출 가능한 상태가 됨!! stack다시쓰기Heap- 동적 메모리 영역- 프로그램 실행 중 객체가 생성/소명하는 영역- new 연산자를 이용해 클래스에 정의된 내용대로 객체(instance..

BackEnd/Java 2024.07.23

[Java]OOP_필드(Field)

필드(Field)란? - 클래스 바로 아래에 작성하는 변수   == 객체의 속성을 의미  [작성법][접근제한자] [예약어] 자료형 변수명 [=초기값];  - 필드 (== 멤버 변수) 구성  1) 인스턴스 변수  2) 클래스 변수 (== static 변수)             1)  [+]   public  같은 프로젝트 내에서 어디서든 접근 가능   - public 필드   → 같은 프로젝트 내 어디서든 해당 클래스를 이용해 만들어진 객체의         public 필드를 직접 접근 가능     2) [#] proteced  같은 패키지 또는 상속 관계에서만 접근 가능      - protected 필드   → 기본적으로 같은 패키지에서만 직접 접근이 가능하지만   다른 패키지에 존재하는 클래스 중 ..

BackEnd/Java 2024.07.23

[Java]OOP_클래스

클래스(class)란? 객체의 속성, 기능을 정의한 문서 (== 설계도)   [class 작성법] [접근제한자] class 클래스{ // 기능1(생성자) // 기능2(메서드) } [class 작성 시 알아야 할 것!!]    - class명은 꼭 대문자로 시작 !! (카멜 표기법) - 접근 제한자    1)  [+] public     - 뜻 : 공공의, 모두의      - 같은 프로젝트에서 어디서든 접근 가능      - public class : 같은 프로젝트에서 누구든지 해당 클래스를      가져가서(import)해서 사용할 수 있음      2) [~] (default)      - () == 생략을 의미 -> class 왼쪽에 아무것도 안적음      -  같은 패키지에서만 접근..

BackEnd/Java 2024.07.23

[Java]객체지향언어(OOP) 정의 및 Account

1. 객체(Object)란?- 현실 : 식별 가능한 모든 것 (속성 + 기능을 지님) - Java : 클래스에 정의된 내용대로 new 연산자에 의해서  Heap 메모리 영역에 생성된 것  2. 객체 지향 언어 || 객체 지향 프로그래밍(OOP) - 현실 세계가 객체로 이루어져 객체 간의 상호작용으로 사건이 발생한다. - 파는 채러다임을 컴퓨터로 옯겨 놓은 것 / 옴겨 놓은 프로그래밍 방식  3. 클래스 (class)- 객체의 속성(필드), 기능(메서드)을 정의한 것(문서/설계도)  4. 객체 지향 언어의 특징1) 추상화2) 캡슐화3) 상속4) 다형성 - 구체적인 것을 제거하고, 공통적인 것만 남겨두는 것→ 유연성 확보  1) 속성, 기능을 하나로 묶어서 관리→  class{} 2) 데이터(속성 == 필드..

BackEnd/Java 2024.07.23