수업내용/Java 28

[2022.09.27.화] Object 클래스, String 클래스

1. Object java.lang패키지에 속하는 클래스 배열을 포함한 모든 객체의 최상위 부모클래스다. 명시적으로 extends를 사용해서 부모클래스를 지정하지 않으면 무조건 extends Object로 간주된다. Object의 모든 메소드는 모든 클래스가 상속받는다. 모든 객체는 Object의 메소드를 사용할 수 있다. Object에는 객체와 관련된 필수 기능들이 구현되어 있다. Object 클래스 주요 메소드 boolean equals(Object obj) 현재 객체와 전달받은 객체가 동일한 객체인지 여부를 반환한다. 객체들의 주소값(참조값)을 비교한다. 재정의 가능 원래 동일성(주소값까지 동일) 비교인데, 동등성(객체의 값만 동일)을 비교할 수 있도록 재정의 int hashCode() 현재 객체의..

수업내용/Java 2022.09.28

[2022.09.26.월] 추상화클래스 활용

-Chart 인터페이스 public interface Chart {//인터페이스(표준)- 꼭 가져야 하는 메소드 선언 // 데이터 전달받는기능, 타이틀 전달받는기능, 열이름 전달받는기능 void setData(int[] data); void setTitle(String title); void setColumnNames(String[] columnNames); void drawChart(); } -AbstractChart 추상클래스 (공통기능 구현) /** * Chart 인터페이스에 정의된 기능 중 모든 하위 클래스들이 공통으로 구현하는 기능들을 미리 구현하는 추상클래스 * Chart 인터페이스를 구현하는 다양한 차트 구현 클래스는 Chart 인터페이스를 직접 구현..

수업내용/Java 2022.09.26

[2022.09.23.금] 추상화, 인터페이스

1. 추상화 1-1. 추상화 개념 의미 구현부가 없는 메소드를 정의하는 것. (하위 구현클래스에게 메소드 구현을 위임시킴) 목적 하위클래스(구현클래스)가 추상화된 메소드를 반드시 구현하도록 강제한다. (왜? 하위클래스는 추상화된 메소드를 보유할 수 없으니까 ) (추상메소드로 꼭 필요한 기능들을 만들고, 하위클래스에서 그것들의 구현부를 재정의) 사용법이 동일한 하위객체를 만들게 하기 위함 (인터페이스가 맞다) : 똑같은 잭이 연결되는 것 (표준을 지킴) // 구현클래스 - 구현메소드로 구성된 클래스, 추상화된 메소드를 보유할 수 없다. public class Sample { // 구현부가 있는 메소드 - 구현 메소드 public void test1( ) { 수행문; 수행문; 수행문; } } // 인터페이스..

수업내용/Java 2022.09.24

[2022.09.22.목] 강제 형변환, 메소드 재정의와 다형성

1. 강제 형변환 1-1. 강제 클래스 형변환 개념 강제 클래스 형변환 - 실제로 생성한 하위클래스 타입의 객체를 상위클래스 타입의 참조변수가 참조하고 있는 경우, 실제 생성한 객체의 속성과 기능을 사용할 수 없다. - 실제로 생성한 객체가 (상위클래스로) 클래스 형변환 되어 참조되고 있는 경우, 실제 생성한 객체를 참조하기 위해서는 강제 형변환 필요. - 상위클래스타입 참조변수1 = new 하위클래스타입( ); // 자동 클래스 형변환 - 참조변수1은 하위클래스타입 객체의 손성과 기능을 사용할 수 없음 - 하위클래스타입 참조변수2 = (하위클래스타입) 참조변수1; // 강제 클래스 형변환 - 참조변수1이 참조하는 객체에서 지정된 하위클래스타입의 주소값을 참조변수2에 대입 - 참조변수2는 하위클래스타입 ..

수업내용/Java 2022.09.22

[2022.09.21.수] 생성자 메소드, 클래스형변환

※ get, set 메소드 자동완성 하는법 : getname + ctrl+space 1. 상속관계의 생성자 메소드 실행 과정 1-1. 상속관계에서 생성자 메소드의 실행 - Person객체 (부모객체) public class Person { private String name; private String tel; public Person() {// 기본생성자 System.out.println("Person() 생성자 실행됨"); } public Person(String name, String tel) { // 생성자 this.name = name; this.tel = tel; System.out.println("Person(String, String) 생성자 실행됨"); } public String get..

수업내용/Java 2022.09.21

[2022.09.20.화] static, 상속

1. static static변수와 static메소드는 정적필드와 정적메소드라고 부른다. (클래스변수, 클래스메소드) 정적필드와 정적메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버 1-1. 정적변수, 정적메소드 Sample 클래스 - 정적변수, 정적메소드가 포함되어 있는 클래스로 객체 생성하기 설계도 로딩 - 작성한 Samlple.class 설계도(소스파일)를 클래스 영역에 로딩(컴파일) - Sample.class 설계도 안에는 멤버변수, 멤버메소드, 정적변수, 정적메소드가 다 있었어 정적변수, 정적메소드 할당 - 클래스 영역에는 정적 변수, 정적 메소드 영역이 있어 - 수행문에 클래스이름이 등장하는 순간, 클래스 영역 내의 정적변수/메소드 영역에 Sample 전용의 공간이 만들어져..

수업내용/Java 2022.09.20

[2022.09.19.월] 클래스의 역할 분담

여러 개의 계좌를 관리하는 프로그램 ( 클래스 3개 생성 ) 1. BankAccount.java (계좌정보 자체의 표현 담당) (조회, 변경 그 자체의 기능만 있음) 필드: 계좌번호, 예금주, 비밀번호, 잔액 기능: 계좌정보 출력기능, 잔액 변경기능, 비밀번호 변경기능, (Setter 메소드) 계좌번호 조회기능, 비밀번호 조회기능, 잔액 조회기능 (Getter 메소드) // 계좌정보를 표현하는 클래스 // 계좌정보 하나를 저장하는 객체를 생성할 때 사용되는 클래스 // Value Object ( 단순한 형태 - 필드 , 생성자 , Getter, Setter ) // 필드 중심 public class BankAccount { // 필드 private String no; private String name;..

수업내용/Java 2022.09.20

[2022.09.17.토] 숙제1

package homework; public class Account { private int no; private String owner; private int password; private int balance; public Account(int no, String owner, int password, int balance) { super(); this.no = no; this.owner = owner; this.password = password; this.balance = balance; } // TODO 비밀번호를 전달받아서 계좌정보를 화면에 출력하는 메소드를 정의하세요 // 필드의 비밀번호와 매개변수로 전달받은 비밀번호가 일치하지 않으면 오류 메세지("비밀번호가 일치하지 않습니다.")를 출력..

수업내용/Java 2022.09.18

[2022.09.16.금] 생성자, this

1. 생성자(Constructor) 1-1. 생성자 객체가 생성될 때 호출되는 '객체 초기화 메소드' (-> 객체 초기화 작업, 객체 생성 시 실행할 작업을 위해 사용) 생성자도 클래스 내에 선언되는 메소드 생성자는 클래스 이름과 동일한 이름을 가진 메소드 생성자 메소드는 반환타입 자체를 적지 않는다 ( void 도 X ) 생성자도 오버로딩(중복정의)이 가능하므로 하나의 클래스에 여러개의 생성자 가능 객체 생성 직후에 실행되는 메소드 정의는 그냥 하지만, 사용할 때는 반드시 new 연산자와 같이 사용 ( new가 객체를 생성하는 것이지, 생성자가 객체를 생성하는 것이 X ) 객체의 초기화 작업과 관련된 수행문 포함 객체의 초기화 작업 멤버변수의 값 초기화하는 것 업무로직 수행전에 실행할 전처리 작업을 수..

수업내용/Java 2022.09.17

[2022.09.15.목] 메소드의 매개변수, 반환타입, 중복정의

1. 메소드의 매개변수(parameter) 접근제한자 반환타입 메소드명(매개변수타입 매개변수값) { } 값을 전달받기 위한 변수 매개변수는 0개 이상 정의 가능 매개변수의 타입은 기본자료형, 참조자료형 모두 가능 메소드를 호출하는 측에서는 반드시 매개변수에 맞게 인자(Argument)값을 전달 1-1. 매개변수가 없는 메소드 - 먼저, Sample 클래스에 메소드 생성 public class Sample { // 매개변수가 없는 메소드 public void test1() { System.out.println("매개변수 없음"); } - SampleApp 클래스에서 메소드 실행(호출) public class SampleApp { public static void main(String[] args) {// ..

수업내용/Java 2022.09.16