본문 바로가기
728x90

자바46

[Java] 클래스/인스턴스 멤버와 정적 멤버 더보기 Day12-1. 230515 인스턴스 멤버와 정적 멤버 인스턴스 멤버와 this 인스턴스 멤버란? 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드. -> 인스턴스 필드, 인스턴스 메소드. => 객체에 소속되어 있기 때문에 객체 없이는 사용할 수 없음. - 객체마다 가지고 있는 멤버 인스턴스 멤버 선언 public class Car{ //필드 int gas; //메소드 void setSpeed(int speed){....} } gas 필드와 setSpeed() 메소드는 인스턴스 멤버이기 때문에 외부 클래스를 사용하기 위해서 Car객체(인스턴스)를 생성하고 참조 변수(ex. myCar 또는 yourCar)로 접근해야한다. Car myCar = new Car(); myCar.gas = 10;.. 2023. 5. 15.
[Java] 클래스/메소드(메소드 오버로딩(overloading)) 더보기 Day11-2. 230512 메소드 메소드 오버로딩(overloading) 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것. 단, 매개 변수의 타입, 개수, 순서 중 하나가 달라야 한다. => 필요한 이유 : 매개값을 다양하게 받아 처리할 수 있도록 하기위해. 대표적인 예 : System.out.println() 메소드 -> 호출할 때 주어진 매개값의 타입에 따라서 오버로딩된 메소드 중 하나를 호출함. Calculator01 클래스> 1 2 3 4 5 6 7 8 9 10 11 public class Calculator01 { //메소드 //정사각형 넓이 구하기 double areaRectangle(double width){ return width*width; } //직사각형 넓이 구하기 d.. 2023. 5. 12.
[Java] 클래스/메소드(리턴(return)문) 더보기 Day11-1. 230512 메소드 리턴(return)문 리턴값이 있는 메소드 return 리턴값; 리턴 타입이 있는 메소드는 반드시 리턴문을 사용해서 리턴값을 지정해야 함. 리턴값이 없는 메소드 : void 리턴값이 없는 메소드는 리턴 타입으로 void를 사용. void로 선언된 메소드에서도 return문 사용 가능. 이때 리턴값을 지정하는 것이 아니라 메소드 실행을 강제 종료시키는 역할. 연습) Car03 클래스 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 public class Car03 { //필드 private int gas; //메서드(method) //gas필.. 2023. 5. 12.
[Java] 클래스/Getter와 Setter 메소드 더보기 Day10-3. 230511 클래스 Getter와 Setter 메소드 일반적으로 객체 지향 프로그래밍에서는 객체의 필드를 객체 외부에서 직접적으로 접근하는 것을 막음. -> 외부에서 마음대로 변경할 경우 객체의 무결성(결점이 없는 성질)이 깨질 수 있기 때문. Setter => 메소드를 통해 필드를 변경하는 방법을 선호. 필드는 외부에서 접근할 수 없도록 막고 메소드는 공개해서 외부에서 메소드를 통해 필드에 접근하도록 유도. -> 메소드는 매개값을 검증해서 유효한 값만 객체의 필드로 저장할 수 있기 때문. -> 이러한 역할을 하는 메소드 : Setter. 필요성 : 외부에서 엉뚱한 값으로 변경할 수 없도록 더보기 외부에서 주어진 값을 필드 값으로 수정 - 필요할 경우 외부의 값을 유효성 검사. s.. 2023. 5. 12.
[Java] 클래스/접근제한자 더보기 Day10-2. 230511 클래스 접근 제한자 접근을 제한하기 위해 사용. 접근이란? 클래스 및 인터페이스의 구성 멤버에 대한 접근을 제한하는 역할 public 접근 제한자 : 외부 클래스가 자유롭게 사용할 수 있도록 함. protected 접근 제한자 : 같은 패키지 또는 자식 클래스에서 사용할 수 있도록 함. private 접근 제한자 : 개인적인 것이라 외부에서 사용될 수 없도록 함. 위 세 가지 접근 제한자가 적용되지 않으면 default 접근 제한을 가짐. default 접근 제한 : 같은 패키지에 소속된 클래스에서만 사용할 수 있음. 클래스의 접근 제한 default 접근 제한 클래스를 선언할 때 public을 생략하면 클래스는 default 접근 제한 가짐. 클래스가 default .. 2023. 5. 11.
[Java] 클래스/메소드(method)(메소드 선언,리턴문) 더보기 Day10~11. 230511~12 메소드 메소드 선언 매개 변수 선언 ex1) 두 수를 더하는 메소드 add() -> 나눗셈할 매개 변수 2개 필요함. - 선언된 add()메소드를 호출할 때에는 반드시 2개의 int값을 주어야 함. => 메서드의 매개변수의 개수가 일치하지 않으면 에러 발생 => 메서드의 매개변수의 타입과 일치하지 않으면 에러 발생 ex2) => 메서드의 매개변수의 타입과 일치하지 않으면 에러 발생 => int를 byte로 형변환 매개 변수의 개수를 모를 경우 1) 매개 변수를 배열 타입으로 선언 호출할 때 배열을 넘겨줌으로써 배열의 항목 값들을 모두 전달. 배열의 항목 수는 호출할 때 결정 선언 > int sum1(int[] values){} 호출 > int[] valuse =.. 2023. 5. 11.
[Java] 클래스/메소드(Method) 더보기 Day9-3. 230510 메소드(Method) 객체의 동작(기능) 메소드 선언 선언부(리턴 타입, 메소드 이름, 매개 변수 선언)와 실행 블록으로 구성 리턴 타입 - 리턴값의 타입 - 리턴값 : 메소드를 실행한 후의 결과값 - 리턴값이 있을 수도 있고 없을 수도 있으나 리턴값이 있을 경우 리턴 타입이 선언부에 명시되어야 함. ex) 전자계산기 객체에서 전원을 켜는 powerOn() 메소드 -> 리턴값 없음 void powerOn() {....} => 리턴값이 없는 메소드는 리턴 타입 void로 기술. 두 수를 나누는 기능인 divide() 메소드 ->나눗셈 결과 리턴해야 함. doble divide(int x, int y) {.....} 메소드 이름 메소드의 기능이 드러나도록 식별자 규칙에 맞게.. 2023. 5. 10.
[Java] 클래스/필드(Field) 더보기 Day9-2. 230510 필드 필드란? 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳. 필드 선언 - 클래스 중괄호 {} 블록 어디서든 존재 가능 - 생성자 선언과 메소드 선언의 앞과 뒤 어떤 곳에서도 필드 선언 가능, 생성자와 메소드 중괄호 {} 블록 내부에서는 선언될 수 없음 - 생성자와 메소드 중괄호 블록 내부에 선언된 것은 모두 로컬 변수가 됨. 타입 필드 [ = 초기값 ]; - 타입은 필드에 저장할 데이터의 종류를 결정 - 타입에는 기본 타입(byte, short, int, long, float, double, boolea)과 참조 타입(배열, 열거, 인터페이스)이 모두 올 수 있음. - 초기값이 지정되지 않은 필드는 객체 생성 시 자동으로 기본 .. 2023. 5. 10.
[Java] 클래스/객체 지향 프로그래밍 더보기 Day9-1. 230510 객체 지향 프로그래밍 부품 객체를 먼저 만들고 이것들을 하나씩 조립해 완성된 프로그램을 만드는 기법 객체란? - 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성과 동작을 가지는 모든 것. ex) 자동차, 자전거, 사람, 책 - 객체는 필드(속성)와 메소드(동작)로 구성되어 있음. - 객체 모델링 : 현실 세계의 객체를 소프트웨어 객체로 설계하는 것. 객체의 상호작용 - 객체들은 각각 독립적으로 존재 - 다른 객체와 서로 상호작용하면서 동작. - 객체들 사이의 상호작용 수단 : 메소드 - 객체가 다른 객체의 기능을 이용하는 것 : 메소드 호출 메소드 호출의 형태 리턴값 = 전자계산기객체.메소드(매개값1, 매개값2,…); ex) int result =.. 2023. 5. 10.
[Java] 배열 복사(얕은 복사,깊은 복사), Object 클래스 더보기 Day8. 230509 배열 배열 복사 배열은 한 번 생성하면 크기 변경 불가 -> 더 큰 배열을 새로 만들고 이전 배열로부터 항목 값 복사해야 함. 배열 복사 방법 얕은 복사(shallow copy) 주소 복사 -> 동일 주소 공유 원본에 변화 발생하면 사본에 변화 반영 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 public static void main(String[] args) { int [] oriArr = {11,12,13,14,15}; //원본배열 System.out.println(oriArr); //[I@15db9742 System.out.println(Arrays.toString(oriArr)); //[11, 12, 13, 14, 15] int[] c.. 2023. 5. 9.
728x90