반응형

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 게시됨

IT/JAVA

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

메서드 오버로딩(Method Overloading) = 메서드 다중 정의 - 시그니처(리턴타입, 메서드명, 매개변수 중) 매개변수(파라미터)가 다른 메서드를 여러번 정의하는 것 - 동일한 작업을 수행하는 메서드의 매개변수 타입이 다를 때 메서드 이름을 별도로 구분하지 않고, 같은 이름의 메서드를 매개변수만 달리 하여 여러번 정의하는 것 → 메서드 호출 시점에서 전달되는 데이터 타입에 따라 매개변수 타입이 일치하는 해당 메서드를 자동으로 호출함 - 매개변수 이름만 다르거나, 리턴타입만 다른 것은 오버로딩이 아님 - 똑같은 메서드이름 중 자기타입에 맞는 메서드로 감 예제1) public class Ex { public static void main(String[] args) { NormalMethod nm ..

2020.08.19 게시됨

IT/JAVA

[JAVA]멤버변수(필드)

멤버변수(Field)(인스턴스 변수) - 객체의 현재 상태 데이터를 저장 public class Car{ String comp; //멤버변수선언 ,인스턴스변수 String model; //멤버변수선언,인스턴스변수 Strong color; //멤버변수선언,인스턴스변수 int maxspeed; //멤버변수선언,인스턴스변수 } 1. 멤버변수(인스턴스변수) 선언 - 메소드 선언의 앞과 뒤 어떤곳에서도 필드선언이 가능 - 하지만 생성자와 메소드 중괄호{}블록 내부에는 선언이 안됨 - 생성자와 메소드 중괄호 블록 내부에 선언된것은 모두 로컬(지역)변수라고 함 타입필드[=초기값]; - 초기값이 지정되지 않은 멤버변수는 객체 생성 시 자동으로 기본 초기값으로 설정 - new 연산자사용 시 0과 null로 초기화(초기화..

2020.08.12 게시됨

IT/JAVA

[JAVA] 객체지향프로그래밍(OOP) 2

객체란(object)? - 자신의 속성을 가지고 있으면서 식별가능한 것 - 속성(구성요소)과 동작(기능)으로 구성 - 이 속성과 동작을 각각 멤버변수(필드)와 메소드(method)라고 함 - 객체들 사이의 상호작용 수단 : 메소드 객체와 클래스 - 메모리에서 사용하고 싶은 객체가 있다면 우선 서계도로 해당 객체를 만드는 작업이 필요 → 여기서 설계도는 클래스(class)를 뜻함. - 클래스에 객체를 생성하기위한 멤버변수(필드)와 메소드가 정의되어 있음 - 클래스로 부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 함 - 객체를 만드는 과정을 인스턴스화 라고함 - 하나의 클래스로 부터 여러개의 인스턴스를 만들수 있음(참조하는 객체는 완전히 독립된 서로 다른 객체) - main()메소드가 없..

2020.08.12 게시됨

반응형