Develop
❌ 자바 캡슐화 : 아무나 접근 못하게 할테다
🟣 캡슐화(encapsulation) 인스턴스의 변수에 추상화 목적에 맞는 유효한 값만 넣을 수 있도록 외부 접근을 제한하는 문법이다. 종류 범위 private 클래스 내부에서만 접근 가능 default 클래스 내부 + 같은 패키지 접근 가능 protected 클래스 내부 + 같은 패키지 + 서브 클래스 접근 가능 public 모두 접근 가능 🟣 캡슐화와 접근제한자 : 아무나 못 들어온다! ✔️ 한 클래스에서 다른 클래스에 접근 가능한지를 판별하기 위해서는 위의 접근제한자의 종류를 알 필요가 있다. ✔️ 서브 클래스에서 슈퍼 클래스로 접근할 때 슈퍼 클래스에서 지정한 접근 범위보다 같거나 넓어야한다. ✔️ 공통영역 private는 항상 같은 클래스 내에서만 접근 가능하기 때문에 다른 클래스에서 접근할 수..
🎁 this, super 그리고 오버라이딩(Overriding) 개념잡자
this vs super 🟣 필드에서의 this와 super 필드에서의 this과 super는 말 그대로 해당 레퍼런스가 가리키는 인스턴스의 클래스를 지칭한다. A4 obj = new A4(); obj.name // A 클래스의 name obj.tel // A3 클래스의 tel obj.age // A4 클래스의 age obj.print(); A4.print(): => this.name(A), super.name(A) => this.age(40), super.age(30) => this.tel(A3: 010-1111-2222), super.tel(A3: 010-1111-2222) => this.working(false), super.working(true) ---------------------------..
🚀 bitcamp TIL (21.07.30)
📌 25일차(2021-07-30,금) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex06: c ~ * : 다형성(다형적 변수, 오버로딩, 오버라이딩)(계속) ex08: a ~ b : 캡슐화(private, (default), protected, public) 📌 알게된 점 객체지향 분석/설계에서는 메서드를 operator라고 부른다. (국제적으로) data 입출력을 통해 중간에 연산을 수행하는 역할 s에 대해 compute()라는 연산을 수행 (s라는 데이터에 대해서 compute()를 수행) 인스턴스를 만들 때 주의사항 다른 클래스를 상속하고 있는지 확인한다. 슈퍼 클래스의 인스턴스까지 같이 만든다. (어떤 접근제어자라도 만든다) 생성자를 호출한다. 상속받았다고 해서 기존 클래스..
⭕ 자바 : 상속(Inheritance)과 다형성(polymorphism) 올것이 왔다!
⭕ 상속(Inheritance)과 다형성(Polymorphism) 🟣 이전 포스팅 ✔️ 상속에 대한 이전 포스팅을 참고하려면 아래 링크를 클릭해주세요 ⭕ 자바 : 상속(Inheritance)의 등장 🟣 객체지향(OOP)의 핵심 앞에서 객체지향 문법을 준비하기 위한 여러 문법을 배웠는데 이제부터 진정한 객체지향의 길로 접어들 것 같다는 생각이 든다. 알고보면 객체지향은 실생활과 매우 유사하다. 객체지향을 잘 이해한다는 것은 클래스를 어떻게 나눌 수 있냐가 핵심이라고 생각된다. 데이터 중심 클래스 vs 기능 중심 클래스(업무) 중 어떤 것에 중심이냐에 따라 클래스를 따로 짠다. 그리고 데이터를 추상화, 기능을 추상화한다. 실세계 => 데이터로 추상화한다. ✔️ 물리적 : 환자(Patient) , 제품(Pro..
🚀 bitcamp TIL (21.07.29)
📌 24일차(2021-07-29,목) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex05: h ~ * : 상속 문법(계속) ex06: a ~ c : 다형성(다형적 변수, 오버로딩, 오버라이딩) 📌 알게 된 개념 메모리 설계도 = 새 데이터 타입 정의 데이터(project) vs 기능묶음(업무)(ProjectHandler) 어떤 것에 중심이냐에 따라 클래스를 따로 짠다. 데이터를 추상화, 기능을 추상화 실세계 => 데이터로 추상화 (환자 정보를 데이터로 저장) 물리적 : 환자 , 제품(Product) 개념적 : 주문 , 날짜 물리적,개념적인 것을 추상화시킨다. API문서 >> 문서화 자신이 짠 코드를 문서화하면 가장 좋다. 나 이외에 다른 사람이 내가 만든 코드를 유지보수 한다면? ..
⭕ 자바 : 상속(Inheritance)의 등장
상속(Inheritance)은 왜 등장하게 되었을까? 상속이 등장하게 된 배경과 코드를 살펴보며 상속에 대해 간접 체험해 보는 것이 목적입니다. 먼저 상속이 등장하게 된 배경에 대해 알아볼까요? 1. 기존 코드에 새로운 내용을 추가한다면? 만약 프로그램을 유지보수하는 과정에서 기존 코드에 새로운 내용을 집어넣는다면 어떻게 될까? 여기에는 몇 가지 문제점들이 있는데 이에 대해서 알아보자. 📌 문제점 ✔️ 변경된 사항으로 기존 코드를 사용하는데 영향을 끼친다. 기존에 잘 되던 기능까지 동작이 안되는 문제가 발생한다면? 끔찍하다.. ✔️ 오류가 발생 할 가능성이 높다. ✔️ 코드가 누더기가 되어서 유지보수가 힘들다. 위와 같은 문제점들이 발견되면서 새로운 해결책이 필요해지게 되는데... 2. 기존 코드를 복제..
⛱️ 생성자(Constructor) 너는 누구니?
도데체 생성자(Constructor)는 왜 쓸까? 생성자란 ? 인스턴스를 생성한 후 재대로 쓸 수 있도록 유효한 값으로 초기화 시키는 일을하는 메서드다. 인스턴스가 배열이 필요하다면 배열 주소를 넣어넣고 다른 인스턴스를 사용해야한다면 주소를 받아서 넣는 그런 일을한다. 변수를 쓰기전에 유효한 값으로 초기화를 시켜놔야하는 경우에 쓴다. 인스턴스 필드는 생성자의 첫 부분으로 들어간다. // Object()가 생성자이다 Object obj = new Object();지금까지 new 클래스명()으로만 알고 있었는데 이 부분이 생성자를 나타낸다는 것! 모든 클래스는 1개 이상의 생성자를 가지고 있다. 자바에서는 모든 클래스에 최소 1개 이상의 생성자가 있다. 생략되어 보이지 않을 뿐이다. 기본 생성자와 파라미터가..
🚀 bitcamp TIL (21.07.28)
📌 23일차(2021-07-28,수) 자바 객체지향 문법(eomcs-java/com.eomcs.oop) ex04 인스턴스 멤버와 스태틱 멤버 활용예 ex05 a ~ g : 상속 문법 📌 알게 된 개념 생성자란 ? 인스턴스를 생성한 후 재대로 쓸 수 있도록 유효한 값으로 초기화 시키는 일을하는 메서드 변수를 쓰기전에 유효한 값으로 초기화를 시켜놔야하는 경우 남이 만든 클래스에 생성자를 사용할 때 메뉴얼을 보고 적절한 생성자를 선택해서 사용하라. 인스턴스를 만들고 적절한 생성자를 선택해서 유효한 값을 설정한 후 사용하라 어떤 생성자가 있고 이런 값을 줘야한다 메뉴얼이 나와있다 그것을 보고 쓰면 된다. JDK 8 까지 String 클래스는 문자열을 저장할 때 char[] >> 9 부터 byte[] 사용 인스턴..