객체
보고, 느끼고, 인지할 수 있는 모든 것
즉, 자신의 속성을 가지면서 식별이 가능한 것
객체 지향 프로그래밍
객체들을 조립해서 완성된 프로그램을 만드는 기법
클래스
객체를 정의한 설계도 또는 틀이라고 볼 수 있다.
객체는 클래스에 정의되어 설계된 내용 그대로 생성된다. (인스턴스화)
**주의! 클래스는 객체를 생성하는 데 사용되는 것으로 객체 그 자체가 아니다.
객체 vs. 인스턴스
객체: 클래스로 구현한 대상
인스턴스: 메모리에 할당된 데이터
>> ???
>> There's no real significant difference that should consume too much of your time. ... I have never met anyone in my career that would be picky and spend a half-hour trying to point out the differences because there's really none. Time can be better spent on other development efforts.
>> 앗 ㅇㅋㅇㅋ 객체는 조금 더 큰 개념으로 인스턴스를 아우르고, 인스턴스는 실제 클래스로 생성된 physical thing 정도 라고 이해하고 넘어가자!
+) 클래스와 객체
Class
a way that we can define our own custom data type
학생 데이터가 필요하다. 이름도 나이도 전공도 학점도 받고 싶은데 String이나 int/double 만 사용해서는 받을 수가 없다ㅠ 어케 좋은 방법이 없을까요? >> 클래스~~
1) Student 클래스
public class Student {
String firstName;
String lastName;
double gpa;
String major;
int age;
boolean onProbation;
}
원하는 조건을 받을 수 있는 Student 클래스를 생성했다.
2) App 클래스
public class App {
public static void main(String[] args) {
Student myStudent = new Student();
myStudent.firstName = "rom";
myStudent.lastName = "yang";
myStudent.major = "Business";
myStudent.gpa = 1.0;
myStudent.age = 500;
myStudent.onProbation = false;
System.out.println(myStudent.firstName);
}
}
Student 클래스로부터 객체를 생성하고 정보를 입력해서 원하는 Student 데이터를 만들었다!
actually create a student
when to use? when we want to create an actual student/ and want to gitve different values
Object
an instance of a class
actually has values inside it
필드
클래스에 포함된 변수로 객체의 속성을 정의
***
클래스 변수: static
인스턴스 변수: static이 붙지 않은 변수
→ 클래스+인스턴스 변수=멤버 변수
지역 변수: 메서드 내에 포함된 모든 변수 > 메서드 블록에서만 사용 가능하며 메서드 종료시에 소멸된다
→ 선언 위치에 따라 종류가 결정되며 각자 다른 유효 범위를 갖는다.
초기값!
지역 변수: 직접 초기화하지 않으면 오류가 발생한다
인스턴스 변수: 직접적으로 초기화하지 않아도 강제로 초기화가 이루어진다
**지역 변수는 선언시 반드시 초기화
메서드
특정 작업을 수행하는 일련의 명령문들의 집합
접근제어자 반환타입 메서드명(매개변수){}
메서드 오버로딩
1. 메서드의 이름이 같아야 한다
2. 매개변수의 개수 또는 타입이 달라야 한다
** 주의! 반환 타입은 오버로딩의 성립에 영향을 주지 못한다!
🐑 Daily 회고
1. jvm jvm jvm memory structure
- 추가 공부+포스팅하려고 백년 전에 들은 강의 재탕했다
- 20년 3월의 교수님: 4월달이 되면 강의실에서 수업을 할 수 있을 테니까~(아닌데요) 3월16일부터 27일까지 온라인으로 진행(아니었습니다ㅠㅠㅠ)
- 근데 막상 강의도 보고 열심히 ref도 찾아봤는데 너무 추가적인 내용이 많아서 객체 관련만으로 정리하자니 내용이 부실해져서 딱히 또 정리해야 되나 싶고, 다 포함해서 정리하자니 내가 멍청하다 에고
- 암튼 당장 필요한 부분은 이해했으니까 심화 부분은 추후 머리가 덜 멍청해지면 정리해보기로 한다
2. 스케줄 확인을 잘하자
- 아니 오늘 진도까지 정리하려다가 생성자까지 넣어서 하는 게 깔끔할 것 같아서 내일 같이 하려고 보니까 블로깅 시간이 있다...................................................................................... 실화?
- 그래도 좋은 게 좋은 거다 ㅠ 블로깅 시간 많이 남으면 더 까먹기 전에 빨리 코플릿 배열 푼 거 정리해놓자
3. TIL은 힘 빼는 중
- 개념 정리 부분은 글을 따로 빼는 게 깔끔한 것 같아서 TIL은 간단하게 노트 정리한 내용 올리는 정도로만 하기로 했다. 언제 또 마음 바뀔지 모르는데 아무튼 일단은.
총평 ⭐⭐
오늘 뭔가 막 놀지는 않았는데 이상하게 계속 집중이 안 돼서 효율이 엄청엄청 떨어졌다. 평소 효율의 절반도 못 내면서 종일 앉아 있기만 한 것 같다. 차라리 놀기라도 했으면 억울하진 않을 것 같다. 게임 한두판씩 하고 싶은데 한번 게임하면 중독자 수준으로 해버려서 손을 못 댄다. 자제력아 일을 해! ㅠ 이번주 벌써 좀 힘든데 주말에 하루 놀 생각으로 컨디션 좀 올리면서 해야겠다. 일단은 공연이 보고 싶다........... 아님 전시회라도
'diary > codestates (be39)' 카테고리의 다른 글
05/12/22 java/ 상속과 캡슐화 (0) | 2022.05.13 |
---|---|
05/11/22 java 생성자 + 이력서 특강 (0) | 2022.05.12 |
05/09/22 Daily 회고 (0) | 2022.05.10 |
05/06/22 java 조건문과 반복문 후기 (0) | 2022.05.07 |
05/06/22 [pair: java: 반복문: 3] 소수를 판별하는 여러가지 방법 (0) | 2022.05.07 |