Java
-
[JAVA] Object Class 1편 equals hashCode toString clone 메서드JAVA 2022. 8. 4. 12:02
1. Object Class Object는 모든 클래스의 최고 조상으로 11개의 메서드를 가지고 있습니다. protected Object clone( ) : 객체 자신의 복사본을 반환한다. 오버 라이딩을 통해 접근제어자를 public으로 바꿔줘야 한다. public boolean equals(Object obj) : 객체 자신과 객체 obj가 같은 객체인지 알려준다. 참조 변수에 저장된 주소를 비교한다. 오버 라이딩을 통해 주소가 아닌 멤버 비교도 할 수 있다. equals 메서드를 오버 라이딩하면 hashCode 메서드도 오버 라이딩해줘야 한다. (중요) equals 메서드의 결과가 true이면 두 객체의 해시 코드는 같아야 하기 때문입니다. protected void finalize( ) : (거의 ..
-
[JAVA] 객체지향 2편 제어자 다형성JAVA 2022. 8. 2. 10:17
1. 제어자 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여한다. 제어자는 크게 접근 제어자와 그 외 제어자로 나뉜다. 접근 제어자 : public, protected, default, private 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있지만 접근 제어자는 단 하나만 사용이 가능하다. 1-1. 그 외 제어자에 대해 알아보기 static - 공통적인 static이 사용될 수 있는 곳은 멤버 변수, 메서드, 초기화 블록이다. 멤버 변수 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다. 클래스 변수는 인스턴스를 생성..
-
[JAVA 공부 6일차] static, final, abstract, 접근 제어자 알아보기JAVA 2022. 7. 27. 16:16
1. static class staticTest{ static int width; // 클래스(static) 변수 static int height; // 클래스(static) 변수 static { // 클래스 초기화 블록 (복잡) width = 100; height = 200; } static int max (int a, int b){ // 클래스(static) 매서드 return a > b ? a : b; } } 만약 이런 클래스가 있다면 여기 있는 모든 멤버는 인스턴스를 생성하지 않고도 사용할 수 있습니다. static의 경우 파일이 실행될 때 메모리에 올라가며 몇 개의 인스턴스를 생성하더라도 최초 1회만 초기화됩니다. static은 인스턴스 멤버에만 사용할 수 있습니다. 2. final final ..
-
[JAVA 공부 6일차] 객체지향 Part 4JAVA 2022. 7. 27. 12:05
1. 상속 public class object_oriented_2 { public static void main(String[] args) { SmartTv stv = new SmartTv(); stv.channel = 10; // 상속받은 멤버 stv.channelUp(); // 상속받은 멤버 System.out.println(stv.channel); stv.caption = true; stv.displayCaption("Hello JAVA"); } } class Tv2{ // 멤버 7개 String color; // 인스턴스 변수 1 boolean power; // 인스턴스 변수 2 int channel; // 인스턴스 변수 3 static int cv; // 클래스 변수 (static 변수) / 공..
-
[JAVA 공부 5일차] 객체지향 Part 3JAVA 2022. 7. 27. 09:20
1. 변수의 초기화 지역 변수는 꼭 사용 전에 수동 초기화해주어야 한다. 인스턴스 변수, 클래스 변수(static 변수)의 경우 자동 초기화가 된다. int, long, short, byte, float, double 타입의 경우 타입에 맞게 0으로 초기화된다. boolean 타입의 경우 false로 초기화된다. char 타입의 경우 '\u0000' (공백 1칸)으로 초기화된다. 참조형 변수는 null로 초기화된다. 1. 명식적 초기화 ( = ) 간단한 초기화할 때 많이 사용된다. class Car{ int door = 4; // 기본형 변수의 초기화 Engine e = new Engine(); // 참조형 변수의 초기화 } 2. 초기화 블록 복잡한 초기화를 할 때 많이 사용된다. 인스턴스 초기화 블록 ..
-
[JAVA 복습] 객체지향, 배열, 연산JAVA 2022. 7. 26. 17:21
지금까지 공부한 JAVA 복습 코드입니다. import java.util.*; public class MyClass { public static void main(String args[]) { System.out.println("test => class value = " + test.zz); // static 변수는 인스턴스 생성 없이 사용 가능 test2 a = new test2(1,2,3,4); // test2 인스턴스 생성 후 (1,2,3,4)로 초기화 하고 그 주소를 참조 변수 a에 저장 System.out.println("x = "+a.x); System.out.println("y = "+a.y); System.out.println("z = "+a.z); System.out.println("qq..
-
[JAVA 공부 4일차] 객체지향 Part 2JAVA 2022. 7. 26. 09:37
1. 생성자(constructor) 생성자 생성하는 방법 : 클래스명( ){ } 생성자와 기본 생성자를 깐부로 생각해서 꼭 같이 작성해주는게 나중에 에러를 줄일 수 있다. 생성자란 인스턴스 생성 시 호출되는 "인스턴스 초기화 메서드"이다. 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. 생성자가 없다면 컴파일러가 기본 생성자를 추가해준다. class를 사용해봤다면 이미 우린 기본 생성자를 호출한 적이 있습니다. public class Myclass{ public ...{ Test a = new Test(); // 연산자 new에 의해 메모리에 Test클래스의 인스턴스가 생성된다. // 생성자 Test()가 호출되어 수행된다. // 생성된 Test인스턴스의 주소가 참조변수 a에 저장된다 } } ..
-
[JAVA 공부 3일차] 객체지향 Part 1JAVA 2022. 7. 25. 15:21
객체지향 언어의 특징으로 크게 4가지 있다. 기존의 프로그래밍 언어와 크게 다르지 않다. 코드의 재사용성이 높다. 코드의 관리가 쉬워진다. 신뢰성 높은 프로그램의 개발이 가능하다. 1. 객체의 구성요소 객체의 구성요소에는 속성(변수)과 기능(메서드)으로 이뤄져 있습니다. public class Mainclass{ public static void main(String[] args){ // 클래스명 참조변수명 = new 클래스명(); Tv t = new Tv(); // 인스턴스 생성 t.channel = 7; // 인스턴스 사용 System.out.println(t.channel); // 7; } } class Tv{ // ⭐ 인스턴스 변수 String color; boolean power; int cha..