IT story/Java

D+8 class(overload, Calculator 출력, scope)

jason719 2016. 8. 10. 23:57

Feild(필드)

  • 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳.


class의 구성

  • 생성자 A(){} 
  • 전역변수 (static, final, default, protected, private) int a; 
  • 함수 (static, default, protected, private) void B(){}
  • 메인 함수 public static void main(String[] args){}


 return(반환) (method 수업)

  • 무조건 값을 반환해야한다.
  • method의 마지막 logic은 return이어야 한다.
  • This method must return a result of type String

package com.javalesson.ch05method;


public class L04Return {

public static String numDemo(int num){ 

//if문으로 만드세요.

if(num==0){

return "zero";

}else if(num==1){

return "one";

}else if(num==2){

return "two";

}else if(num==3){

return "three";

}else{

return "none";//void가 아니면 꼭 반환하는 값이 있어야한다.

}

}

public static void main(String[] args) {

System.out.println(numDemo(3));

}//main end


}//class end


Class

  • 다른 클래스에서 호출하기
  • Overload에 대해 알아보기

예제 1.

package com.javalesson.ch06class;


public class L01Class {


public static void main(String[] args) {

//내이름 부모님 이름 호출하기

new HelloClass("나").printHello();

new HelloClass("엄마").printHello();

}//main end


}//class end


class HelloClass{

String name;

public HelloClass(String name){

this.name=name;

}

public void printHello(){

System.out.println(name+"님 안녕하세요.");

}

}//class end


예제 2.

package com.javalesson.ch06class;


public class L01Class {


public static void main(String[] args) {

//내이름 부모님 이름 호출하기

//new HelloClass("나").printHello();

//new HelloClass("엄마").printHello();

String[] p = {"아빠","엄마","누나","나"};

HelloClass h = new HelloClass(p);

h.printHellos();

}//main end


}//class end


class HelloClass{

String name;

String[] names;

public HelloClass(String name){

this.name=name;

}

public HelloClass(String[] names){

this.names=names;

}//생성자 오버로드 overload -> 다형성(한가지 이름이 여러 역할을 하는 것)

public void printHello(){

System.out.println(name+"님 안녕하세요.");

}

public void printHellos(){

for(int i=0; i<names.length; i++){

System.out.println(names[i]+"님 안녕하세요");

}

}

}//class end


Calculator

  • Calculator 클래스를 생성하자
  • sum()과 avg()의 값을 출력해보자
  • a, b 객체 생성시 값을 초기화(대입)
  • package com.javalesson.ch06class;
  • sum() 호출하면 a+b가 반환
  • avg() 호출하면 (a+b)/2가 반환

예제

package com.javalesson.ch06class;


class Calculator{

double a,b;

public Calculator(double a, double b){

this.a=a;

this.b=b;

}

public double sum(){

return a+b;

}

public double avg(){

return (a+b)/2;

}

public void msg(){

System.out.println("a와b의 합은"+sum());

System.out.println("a와b의 평균은"+avg());

}

}//class end

public class L02Calculator {


public static void main(String[] args) {

Calculator cal = new Calculator(7,8);

cal.msg();

}//main end


}//class end



Scope

  • for문 안에 i=0(a();) 이라고 선언하면 무한 반복문이 된다. 
  • 무한 반복을 예방하기 위해서 조건문 안에 int를 선언하자


예제

package com.javalesson.ch06class;


public class L03Scope {

static int i = 10;

public static void a(){

i=0;

}

public static void main(String[] args) {

for(int i=0; i<5; i++){

a();

System.out.print(i);

}

}//main end

}//class end