본문 바로가기

전체 글173

[java] 자바 타입변환 과 다형성(polymorism) 정리(해석) 및 예제코드 (1)- CodeRecorder 같은 타입이지만 실행결과가 다양한 객체를 대입(이용) 할 수 있는 성질을 말한다 - 부모타입에는 모든 자식객체가 대입될수있다 ! / 자식 타입은 부모타입으로 자동 타입 변환된다. 자식 extends 부모 이런 클래스가 있다면 // 부모타입 변수 = new 자식1(); , 부모타입 변수 = new 자식2(); 이렇게 정의 할수있다 Cat cat = new Cat(); Animal aniaml = cat ; cat == animal ; // true 이 결과를 보게 된다면 cat 이 아무리 animal 타입으로 변환이 되어있어도 cat 은 new Cat(); 의 객체이기 때문에 같은 곳을 바라보고 있는 걸 알수있다 ! b 는 e 와 상속관계가 아니기 때문에 자동 타입변환이 불가능하다 ! 또한 c 는 d 와 .. 2022. 10. 3.
[java] 자바 final 클래스와 메소드 , protected 접근 제한자 짧은 정리 - CodeRecorder final 클래스와 메소드 클래스를 선언할때 class 앞에 final 을 붙이면 , 최종적인 클래스이므로 더이상 상속할수 없는 클래스가 된다 ! 그래서 extends final이 붙은 클래스 는 상속이 불가능하다 ! 메소드도 마찬가지로 final 이 붙으면 최종적인 메소드 이므로 , 자식에게 주되 ,오버라이딩을 할수없다(변경할 수 없다). 부모가 준대로 써야한다 ! protected 접근 제한자 public 은 모든 패키지에서 가져다 쓸수있고 default 는 같은 패키지에서만 쓸수있고 private 는 같은 클래스에서만 쓸수있다 protected 접근제한자는 public 과 default 의 중간쯤에 위치해있는데 같은 패키지 이거나 , 자식에게만 사용할수있다 ! 2022. 10. 3.
[java] 자바 메소드 재정의 오버라이딩(@Override) 정리 및 예제코드 - CodeRecorder 부모가 가지고있는 메서드를 자식이 재정의해서 사용하는것을 말한다 ! 부모의 메소드 선언부와 동일해야하고 , 접근제한을 더 강화시킬수없다 ! 자식이 부모의 메서드를 재정의 한다면 부모는 메서드는 숨김처리가되고 , 자식의 재정의된 메서드를 사용하게된다 ! HTML 삽입 미리보기할 수 없는 소스 이렇게 계산기 Calculator 클래스를 만들고 HTML 삽입 미리보기할 수 없는 소스 Calculator를 부모로하는 Computer 클래스를 만들었다 이때 @override 가 붙은 메소드가 있는걸 확인 할수있다 ! 부모도 이렇게 있고 public double areaCircle(double r) 자식도 이렇게 있다 public double areaCircle(double r) 자식은 재정의 되었고 ! 그 결과를.. 2022. 10. 2.
[java] 자바 부모 생성자 호출 순서 super(); / 상속의 개념 - CodeRecorder 자식의 은 부모 없이 생성되지 않기 때문에 ! extends 부모 가 달린 클래스는 부모 의 생성자 가 호출되고 그 다음에 자기 자신의 생성자가 호출된다 ! 모든 자식 생성자에는 super(매개변수 , ...); 가 생셩되어있다 ! 예제를 한번 보자! HTML 삽입 미리보기할 수 없는 소스 이렇게 model 과 color 을 필드값으로 가진 Phone 클래스가 있다 이 클래스에는 String model, String color 두개의 매개변수를 넣어줘야하는 생성자밖에 없다 ! 그래서 이렇게 phone 을 상속받은 SmartPhone 이 있는데 빈 생성자를 만드려고 하고 , super 로 부모의 생성자를 받으려고했지만 .. 부모 생성자 중에 빈 생성자는 없기에 저렇게 에러가 걸렸다 ! 이게 올바르게 생성이.. 2022. 10. 2.
[java] 자바 클래스와 static맴버의 생성 순서 예제코드 - CodeRecorder 우리는 의식하지 않고 main 메소드를 쓰고있었다 ! 근데 메인 메소드를 잘 살펴보면 메인 메소드 앞에 static 이 붙어있는걸 확인 할수있다 ! 이건 앞서 말했듯 메인 메소드는 TelevisionExample 클래스가 생성되기 이전부터 메모리에 생성이 되어있다고 말 할 수 있다 ! 그래서 ! 이렇게 만든다면 메인 이 먼저 생성되어 있기 때문에 아직 생성되지않은 TelevisionExample 의 필드값들을 쓸 수가 없다 ! 만약 저 필드값을 사용하고싶다면 ? 메인 메소드랑 같이 로딩 될때부터 같이 필드값이 생성될수있도록 static 을 붙여줘야 한다 ! 2022. 10. 2.
[java] 자바 정적 맴버의 사용 및 정적 블록의 사용 static 쓰임새 - CodeRecorder 정적(static) 맴버 , 란 ? 클래스에 고정된 필드값 메소드 를 말하고 보통 static을 붙이면 사용가능하다 ! static 를 가진 메소드나 필드는 객체 없이도 , 사용이 가능하며 접근은 클래스이름.static이 붙은 필드 이름 or 클래스이름.static 이 붙은 메소드 이름 으로 사용할수있다 ! 보통 객체를 여러개 만드는데 객체마다 고정값이라면 static으로 만들어서 사용하면 편리하다 ! 그리고 static이 붙은 메소드나 필드는 클래스가 메모리에 로딩이 된다면 객체를 생성하지 않아도 생성이 되어있다 ! HTML 삽입 미리보기할 수 없는 소스 이렇게 static 이 붙은 맴버 , 블록이 선언되어있는데 HTML 삽입 미리보기할 수 없는 소스 이렇게 객체를 생성하지 않고도 /클래스 이름.필드 .. 2022. 10. 2.
[java] 자바 메소드 오버로딩(overloading) 정리 및 예제코드 - CodeRecorder 클래스내에 같은 이름의 메소드를 말하고 , 하나의 메소드 이름으로 여러가지의 값을 받으려고 만든다 ! 리턴타입은 사용자가 정의하기 나름이고 , 매개변수 , 개수 , 순서는 다르게 선언되어야한다 ! HTML 삽입 미리보기할 수 없는 소스 여기에 사각형의 넓이를 구하는 공식을 담은 메서드가 있다 ! 정사각형일때는 한변의 길이만 가지고 정사각형의 넓이를 구할수 있지만 정사각형이 아니라면 , 가로값과 세로값이 서로 다르기 때문에 2개의 매개변수를 받아야 한다 ! 이럴때 같은 이름의 메소드로 다르게 받는걸 활용할수있다 ! HTML 삽입 미리보기할 수 없는 소스 이렇게 다르게 받을수 있고 그 결과는 ? 이렇게 나온다 ! 2022. 10. 2.
[java] 자바 가변길이 매개변수 정리 및 예제코드 - CodeRecorder HTML 삽입 미리보기할 수 없는 소스 이렇게 int 값을 가진 숫자들을 매개변수를 사용하는 메서드를 만들어봤다 ! 메소드 안의 매개변수가 들어갈 공간에 , (타입 ... 배열이름) 이런식으로 넣어준다 ! HTML 삽입 미리보기할 수 없는 소스 이렇게 int result1 = myCom.sum(1, 2, 3); 이런식으로 숫자를 나열 할수도있고 int[] values = { 1, 2, 3, 4, 5 }; int result3 = myCom.sum(values); 배열을 변수로 만들어서 넣어줄수도 있고 int result4 = myCom.sum(new int[] { 1, 2, 3, 4, 5 }); 괄호안에 바로 배열을 생성해서 넣을수도있다 ! 이렇게 결과값이 나온걸 확인 할수있다 ! 2022. 10. 2.