🌻 JAVA/정리정리정리

🌻 JAVA/정리정리정리

JAVA - 객체, 인스턴스 이해하기

객체, 인스턴스의 개념을 이해하기 위해 정리하는 내용입니다. 클래스 (Class) 개념 객체를 만드는 설계도 또는 틀 /* 클래스 */ public class Car { ... } 객체 (Object) 개념 소프트웨어 세계에 구현할 대상 클래스에 선언된 모양 그대로 생성된 실체 설계도(클래스)에서 만들어낸 제품(?) 특징 모든 레퍼런스 타입을 객체라고 부르기도 한다. 객체는 모든 인스턴스를 포괄하는 의미를 갖는다. OOP 관점에서 클래스 타입으로 선언되었을 때 객체라고 부른다. public class Main { public static void main(String[] args) { Car santafe, tucson;// 객체 } } 인스턴스 (Instance) 개념 설계도를 바탕으로 소프트웨어 세계..

🌻 JAVA/정리정리정리

JAVA - Call By Value ? Call By Reference ?

내가 너무 자바에 기초에 대해서 공부를 제대로 안했다고 생각해서 다시 정리하게 되었다.. Call By Value ? Call By Reference ? 메소드에서 인자값을 받을 때, 값에 의한 호출인지, 참조에 의한 호출인지 결론부터 말하자면 자바는 Call By Value 방식이다. public class Test{ static void changeString(String s){ s = new String("new"); } public static void main(String[] args){ String a = "old"; System.out.println(a); changeString(a); System.out.println(a); // old? new? 뭐가 출력될까 } } 실행결과 old ol..

🌻 JAVA/정리정리정리

JAVA - STUDY 6주차 과제 : 상속

학습 할 내용들 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속의 매우 치명적인 오해 : "상속은 코드의 재활용을 위한 문법입니다." (X) "연관된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있습니다." (O) 상속의 가장 기본적인 특성 부모클래스의 필드, 메소드만 상속되며, 생성자와 초기화 블록은 상속되지 않는다. 부모 클래스의 private, default로 설정된 멤버는 자식 클래스에서 상속 받지만 접근할 수는 없다. Animal 클래스 public class Animal { String name; String bark; public void..

🌻 JAVA/정리정리정리

JAVA - 평균(average) 값 구할 때 오버플로우 안나게 구하기

int 형의 범위는 약 -21억부터 ~ 21억 까지 이다. 만약에 아래의 경우의 평균을 구하면 어떤 값이 나올까? (조건, num1과 num2는 각 각 int형의 최대값을 넘기지 않는다.) int num1 = 2_100_000_000; int num2 = 2_100_000_000; int avg = (num1 + num2) / 2; System.out.println("평균 값 : " + avg); 실행 결과 -47,483,648// 쓰레기 값이 나오게 된다.(오버플로우) 기대 했던 값은 20억이지만, 21억을 넘어가면서 오버플로우가 발생해서 -147.. 값이 나오게 되는 것이다. 그렇다면, 이를 방지할 평균 구하는 방법은 ? int num1 = 2_100_000_000; int num2 = 2_100_0..

🌻 JAVA/정리정리정리

JAVA - STUDY 5주차 과제 : 클래스

학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 클래스의 개념 먼저 클래스의 개념에 대해서 짚고 넘어가야 할 것 같아서, 공부해 보았다. 클래스란 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용됩니다. 자바에서는 이러한 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용하게 됩니다. 클래스는 객체의 상태를 나타내는 필드와 객체의 행동을 나타내는 메소드로 구성이 됩니다. 객체(Object) 사전적 의미 : 물건 또는 대상 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍을 객체 지향 프로그래밍이라고 한다. 예를 들어서, "나는 과일장수에게 두 개의 사과를 구매했다"라는 문장을..

🌻 JAVA/정리정리정리

JAVA - 맨날 헷갈리는 객체의 메모리 참조에 대한 이해

매번 객체에 대해서 이해를 했다고 생각했지만, 막상 사용을 해보면 이게 왜 이렇게 값이 찍히지? 라는 경험이 많았다.. 다시 한번 제대로 정리해보도록 하겠슴다.. 내가 이해하기 어려운 점 // 1번 과정 CopyTest c1 = new CopyTest(); People test = new People(10, "a"); c1.man = test; // 2번 과정 People peo2 = new People(20, "b"); test = peo2; // 원래라면 GC에 의해 new People(100,"100")이 정리 되는데, c1.man이 잡고 있어서 아직 대상이 아니게 된다. // 출력 System.out.println(c1.man.age); // 10 (기존 test의 주소값을 참조하고 있다.) Sy..