9일차(생성자 오버로딩과 메서드호출방법,this,배열)
==>오버로딩 문법(추가->배열,확장 for문)
=>자바 API문서를 참조->Math,String클래스,,,
=============================
j0905
|
-PersonTest.java
PrintTest.java 복사
(),(name),(age),(sex),
(name,age),(age,sex),(name,sex),
(name,age,sex)==>이상적
===========================
p289 =>추상화(설계도)->캡슐화(올바른값 저장?)
=>다형성(메서드의 오버로딩)
====================
this->메서드의 호출방식
업무=>팀장(과장)--->보고서작성->동료
caller worker---->worker
(caller)
1.main()(caller)--->일반메서드 호출
(정적)==>객체를 생성->객체명.일반메서드명()
2.main()---------->정적메서드 호출
(정적)====>클래스명.정적메서드명()
정적메서드명()
===========================
3. this를 이용하는 경우
=================
Student.java(학생)
자동으로 정렬=>ctrl+a(전체복사)
=>ctrl+shift+f
this의 용도
(1)
메서드를 호출해서 멤버변수에 값을 저장할때
멤버변수와 매개변수가 같으면 멤버변수를 구분
하기위해서 멤버변수앞에 this를 써서 구분해준다.
public void setName(String name){
name=name;
}
(2)현재 생성된 객체를 가리키는 예약어
=>p2,p4==>this로 대신사용이 가능하다.
===========================
this=>멤버변수와 매개변수를 구분하기위해 사용
현재 생성된 객체 대신용도
this()=>매개변수가 없는 기본생성자를 호출하라
생성자->일반메서드
메서드 호출 방식의 3 번째
3. 일반메서드->일반메서드 호출
생성자---->일반메서드 호출
4.생성자-->자기 클래스 내부에 존재하는
다른 생성자를 호출
this()=>매개변수가 없는 기본생성자를 호출
this(1);==>매개변수가 1개면서 정수형
this("홍길동")=>매개변수 1개,문자열
this(2,"이길수")-->매개변수 2개
.....==>다양한 방법으로 데이터를 저장하기위해서
Person p5=new Person()
-->new Person("임시2",27,"여자")
public Person(){
this("임시2",27,"여자");//맨앞에 코딩
System.out.println("난 기본생성자호출됨!");
}
public Person(String name,int age,String sex){
//p4.name="테스트임시";
this.name=name;
this.age=age;
this.sex=sex;
System.out.println("인수 3개짜리");
}
main()--->new Person()---->Person("~",27,"여")
<--- <----
인수 3개짜리
난 기본생성자호출됨!
이름=임시2
나이=27
성별=여자
추상화->캡슐화->다형성==>중간점검
=>p291->p292=>String클래스
=>배열까지->API문서
=========================
->ArrayTest
성적처리 프로그램
과목수->3,5,
점수,==총점,평균,석차==>1.변수
2.자료형
int score=0,tot=0,avg=0,,,
==========================
메서드 오버로딩+배열의 의미+확장 for문
=>새로운 JDK문법
==========================
다음중 성격이 다른 것은?
1. char c='A';
2. int a=23;
3. int su[]; //참조형
4. boolean b=false;
객체=레퍼런스변수=인스턴스=참조변수
배열명.length
for(int i=0;i<strArr.length
ArrayTest2.java=>JDK6.0이상부터 지원
//매개변수의 자료형 ... 배열명
public void print(String ... names){
//동적으로 배열의 크기가 자동설정
//String names[]={"자바"}
//String names[]={"자바","다형성"}
for(String su:names){
System.out.print(su);
}
System.out.println();
}
========================
at.print("자바");
at.print("자바","다형성");
==>ArgTest.java
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at j0905.ArgTest.main(ArgTest.java:8)
자바 배열 연습
============
10 20 30 =>apply->run