반응형

IT/JAVA

[JAVA] 형변환(기본형변환/참조형변환[upcasting/downcasting])

예제1.형변환 - 어떤 데이터 타입을 다른 데이터 타입으로 변환하는것 - 기본(Primitive Type)형변환, 참조(Reference Type) 형변환 1. 기본형변환 - 기본데이터타입 8가지중 boolean을 제외한 나머지 7가지 타입끼리의 형변환 - 작은 타입에서 큰차입으로 변환시 자동형변환, 큰타입에서 작은타입으로 변환시 강제 형변환 - 강제형변환시 반드시 형변환 연산자를 사용하여 변환될 타입을 명시해야함 → 단, 강제형변환 후에는 오버플로우가 발생할 위험이 있음 2. 참조 형변환(Reference형변환) - 클래스간의 형변환(참조형 변수끼리의 형변환) - 반드시 상속관계에서만 가능한 변환 - 자식(서브클래스)타입에서 부모(슈퍼클래스)타입으로 변환시 자동 형변환(업캐스팅) - 부모(슈퍼클래스)에..

2020.09.07 게시됨

IT/JAVA

[JAVA] FINAL 키워드

Final - 클래스, 메서드, 변수 선언 시 변경의 마지막을 표시 - 멤버변수에 final 사용시 : 변수 값 변경 금지(= 상수로 취급됨) → final키워드가 붙은 변수(상수)는 일반 변수와 구분하기 위해 대문자 변수명을 작성함(단어구분은 언더바(_)사용) - 메서드에 final 사용시 : 메서드 변경 금지(= 오버라이딩 금지) - 클래스에 final 사용시 : 클래스 변경 금지(= 상속 금지) → 대표적인 final클래스 : java.lang.String, java.lang.Math 등 1.멤버변수에 final키워드 사용 public class Ex3 { public static void main(String[] args) { FinalVariable f = new FinalVariable(); ..

2020.09.02 게시됨

IT/JAVA

[JAVA] 상속(Inheritance)[부모(슈퍼)클래스/ 자식(서브)클래스]1

상속(Inheritance)이란? - 부모가 물려준 것을 자연스럽게 이용 - 슈퍼 클래스(부모클래스, 상위 클래스)가 가진 멤버(변수, 메서드)를 서브클래스(자식클래스, 하위 클래스)가 물려받아 선언 없이 사용할 수 있도록 하는 것 - 서브클래스를 정의 할 때 물려받을 슈퍼클래스를 지정하여 표현 - 상속을 통해 슈퍼클래스의 멤버를 물려받기 때문에 직접 메서드는 변수를 생성할 필요가 없어서 코드 중복 최소화됨 또한, 슈퍼클래스이 멤버를 수정하면 서브클래스에는 슈퍼클래스에서 수정된 내용이 그대로 적용되므로 유지보수용이 - 다중상속 불가(여러 개의 부모 클래스를 상속 X) → 부모는 단 하나 - private접근 제한을 갖는 필드와 메서드는 상속 대상에서 제외 - 자식이 부모를 선택(어떤 슈퍼클래스를 상속받을..

2020.08.31 게시됨

IT/JAVA

[JAVA] this키워드

1. this 키워드 - 자신의 현재 인스턴스 주소가 저장되어 있는 참조변수 (자신의 인스턴스를 가리키는 목적으로 사용됨) - 객체(인스턴스)생성시 참조변수 this에 자동으로 this에 인스턴스 주소가 저장됨 ※ 로컬변수와 멤버변수(인스턴스변수)의 이름이 같을때 로컬변수가 선언된 메서드 내에서 해당 이름을 지정하면 로컬변수를 가르킴 로컬변수의 데이터를 다시 로컬변수(자신)에저장 따라서, 아무효과가 없는 코드가 됨. name = name; // 로컬변수 = 로컬변수로 읽힌다. //The assignment to variable name has no effect(이 변수명을 쓰는것은 아무효과가 없다) 노란줄 경고 ※ 멤버변수와 로컬변수의 이름이 같을떄 멤버변수를 지정하기 위해서 레퍼런스 this를 사용하여..

2020.08.21 게시됨

IT/JAVA

[JAVA] 생성자 오버로딩(생성자 다중정의)

생성자 오버로딩 - 메서드 오버로딩과 기본적인 규칙 및 동작이 동일함 - 객체생성시 다양한 타입 및 갯수의 파라미터를 작는 여러 생성자를 호출하여 다양한 초기화를 수행하는 용도 - 이클립스에서 자동생성 Alt+Shift+R -> O public class Ex2 { public static void main(String[] args) { Person2 ps = new Person2(); Person2 ps2 = new Person2("홍길동"); ps2.Print(); Person2 ps3 = new Person2("강감찬",30); ps3.Print(); } } class Person2{ String name; int age; //1.기본 생성자 정의 public Person2(){ System.out..

2020.08.21 게시됨

IT/JAVA

[JAVA] 생성자 필드(멤버변수) 초기화

생성자 필드(멤버 변수) 초기화 - 멤버변수를 선언할 때 초기값을 주게 되면 동일한 클래스로부터 생성되는 객체들은 모두 같은 값을 갖는다. public class Ex { public static void main(String[] args) { Korea k1 = new Korean(); //nation 대한민국, name null, age 0 Korea k2 = new Korean(); //nation 대한민국, name null, age 0 } } public class Korean{ String nation="대한민국"; String name; String age; } public class Ex { public static void main(String[] args) { Korea k1 = new..

2020.08.21 게시됨

IT/JAVA

[JAVA] 생성자(Constructor)

생성자(Constructor) - 모든 클래스는 생성자가 반드시 존재 - 객체를 생성할 때 new 연산자 뒤에 붙어서 호출되며, 객체초기화를 담당하는 메서드의 일종 - 객체생성시 호출 가능 임의로 호출 불가능 - 메서드와 다른점 1) 생성자의 이름을 반드시 클래스명과 동일해야 한다! 2) 리턴 타입을 기술하지 않는다.(리턴 타입이 없다.) - 클래스 정의 시 생성자를 하나도 정의하지 않을 경우 : 컴파일러에 의해 기본 생성자 (Default Constructor)가 자동으로 생성됨(public 클래스명(){}) → 매개변수가 없고, 중괄호 블록 내에 코드가 없는 빈 생성자 - 클래스에 명시적으로 선언한 생성자가 1개라도 있으면 컴파일러는 기본 생성자를 추가하지 않음 → 문제점 : 파라미터가 없는 기본생성..

2020.08.21 게시됨

IT/JAVA

[JAVA] 메서드 오버로딩 3탄

가변인자(비정형인자, Variable Arguments) - 메서드 정의시 파라미터(매개변수)에 전달되는 인자의 갯수가 유동적일때 일정 갯수가 정해져 있지 않으므로 변수 선언이 어렵다. 따라서, 이렇게 유동적인 인자의 갯수를 모두 처리 할 수 있도록 가변 인자를 사용하여 변수를 선언하면 동일한 타입의 갯수가 제한이 없는 인자를 모두 전달받을 수 있음 - 가변인자형태로 선언되는 매개변수는 전달받은 데이터를 해당이름을 가진 배열 형탱로관리함 - 가변인자에 전달될 데이터는 0개부터 자유롭게 전달 가능 - 가변인자는 마지막 파라미터로 단한번만 사용가능하다! [제한자] 리턴타입 메서드명(데이터타입...변수명){ //→전달되는 데이터들이 가변인자 변수명의 배열로 관리됨 } 예시1) public class Ex3 {..

2020.08.19 게시됨

반응형