9일차

개발개발/자바 2013. 9. 10. 17:23

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

'개발개발 > 자바' 카테고리의 다른 글

11일차  (0) 2013.09.10
10일차  (0) 2013.09.10
8일차  (0) 2013.09.10
7일차  (0) 2013.09.10
6일차  (0) 2013.09.03
Posted by 공돌공돌
,