728x90
반응형
test
method overloading
add(5,7); //12
mul(5, 3); //15
div(30,3); //10
mod(19,3); //1
static void add(int x, int y) {
System.out.println(x+y);
}
static void mul(int x, int y) {
System.out.println(x*y);
}
static int div(int x, int y) {
return x/y;
}
static int mod(int x, int y) {
return x%y;
}

public static void main(String[] args) {
add(5, 7); //12
mul(5, 3); //15
System.out.println(div(30,3)); //10
System.out.println(mod(19,3)); //1
}
12, 15, 10, 1 static int add(int x, int y) {
return x+y;
}
static int mul(int x, int y) {
return x*y;
}
static int div(int x, int y) {
return x/y;
}
static int mod(int x, int y) {
return x%y;
}

public static void main(String[] args) {
int a = add(5,7); //12
int b = mul(5, 3); //15
int c = div(30,3); //10

System.out.printf("%d, %d, %d, %d", a, b, c, mod(19,3));  
}
// 연산식 추후 사용에 따라 method호출 하는 위치가 달라질 수 있음

 

 

클래스(class)

클래스(class)
: Java에서 data를 담기 위한
속성(변수, 상수, 객체)들과 어떠한 명령들을 처리하기 위한
기능(method, 생성자, 초기화블럭)들의 집합. 
 Java file의 최소 단위
class의 member로 존재할 수 있는 것
   
1.속성(=변수, 상수, 객체) [접근제어자]class 클래스명 {
                    [접근제어자] [기타제어자]
자료형 변수명 = 값;

변수;
상수;

객체;

x 초기화 a=5; 
}
final int MAX = 100; //상수선언
int max = 50; //변수선언
int marr = new int[3] //객체 선언 및
String str = " " ; //객체, 참조변수
2-1. 초기화블럭
초기값을 설정 대입하는 것.
맨 처음 1번만 실행됨.
[static] {
실행문들...;
}
static 
2-2. method
: 필요할 때마다
[접근제어자][기타제어자] 리턴타입 메소드명(매개변수...) {
실행문들...;

[return 값;]
} //<필수>(){}
public void md () {
}
2-3. 생성자(Constructor)
:class에서 instance(객체)를 생성할 수 있도록 도와주는 기능을 처리함.
1. <필수> class명과 동일해야 한다.
2. <필수> return타입x 기술부 자체가 없다.
3. 객체생성문에서 new키워드 뒤에 호출이 된다.
4. class안에 기술된 생성자가 한 개도 없으면 기본 생성자가 숨어있다.
목적 : 클래스 안의 멤버필드(속성)의 초기화를 진행,
5. class안에 기타생성자가 한 개라도 기술되어 있으면 기본 생성자는 사라진다.
**기본생성자를 사용하려면 반드시 기본생성자도 기술해줘야한다.
1) defalut(기본) 생성자 
//숨어있는 기본 생성자
public 클래스명( ){ }

[접근제어자] 클래스명() {
실행문들...;
} //<필수>(){}
ExClass ec = new ExClass();
2) 기타생성자
[접근제어자] 클래스명([매개변수 1개이상...]) {
실행문들...;
}
 
x 멤버에 조건문, 반복문, 제어문, 출력문 a = 5; 초기화는 선언과 동시에 하거나, method나 생성자 안 에서만 가능  
일반 class main class
main method x main method o
class를 만드는 것은 객체를 형성하기 위한 것.  
public class Ex01
   int a = 5; //변수선언 - 멤버변수, 필드, 컬럼, 인스턴스변수
                    속성(Attribute, Property) 
   public void md( ) { //메소드선언 - 멤버
       int b = 6; //지역
       System.out.println("md메소드 출력");

 
   
변수의 종류    
생명주기 전역변수
: 전역에 사용되는 변수, 프로그램이 실행되어 선언된 시점에서 프로그램이 종료될 때까지 살아있는 변수
( 멤버변수 //자동초기화
public class Ex01  { 
int b ; //자동초기화값 0
public void md1( )  {
   int a = 5;
   System.out.println(a);
   int a = 7; //동일 지역내 동일한 변수명,개체명으로 재선언x
   int b = 7; //동일지역내, 동일명으로 1번은 재선언 가능
   String b = "가" //자료형이 바뀌면서 1번은 재선언 가능
   System.out.println(b);
    } 
public void md2( )  {
   b = "가"; //자료형없이 재선언x
   System.out.println(b); //b = 0
    } 
지역변수
: 지역 내부 안에서만 살아있는 변수
(메소드, 생성자, 반복문, 조건문(제어문))
선언을 한 건지
재선언을 한 건지
  public class ExMain {
 public static void main(String[] args) {
}
}
public class ExClass {
int a;
public void mdA() {
   System.out.println(a);
   }
public void mod(int a, int b) {
   System.out.println(a%b);
   }
}

Java는 객체지향언어(Object  Oriented programming Language)

 

객체선언형식 자료형 변수명 = 값;
-자료형 class급 이상(String) 
특수문자로는 _, $로만, 공백x
  자료형 참조변수명 = new 자료형명([]) ;
(객체명,인스턴스명, 주소값저장)    생성자호출문
자료형 객체명=new 자료형( );
ExClass el = new ExClass( );
//객체선언 및 공간할당 instance객체명(복사해서 메모리에 올려놓은 상태, Heap영역)
el.a =
     
Ex06
클래스 new
public class Ex06Class {
int   x; //0 멤버는 자동초기화값을 갖는다.
int   y; //0
}
10, 0
0, 5
public class Ex06Main {

public static void main(String[] args) {
Ex06Class e6c = new Ex06Class(); 
e6c.x = 10;
System.out.println(e6c.x + ", " + e6c.y );

Ex06Class e6c1 = new Ex06Class();
e6c1.y = 5;
System.out.println(e6c1.x + ", " + e6c1.y );
}
}

변수선언 및 값 할당
//변수 만들 수 있는 자료형 : 기본자료형(byte, short, int, long, char, float, double)
자료형 변수명 = 값;

객체선언 및 공간 할당(클래스 복제)
//객체를 만들 수 있는 자료형
//Java에서 제공해주는 자료형(예:String)
//우리가 직접 만든 클래스
자료형 객체명 = new 자료형( ); //생성자호출문
Ex07
public class Ex07Class {
int   x;
int   y;

public void setX(int new_x) {
x=new_x;
}
public void setY(int new_y) {
y=new_y;
}
public int getX( ) {
return x;
}
public int getY( ) {
return y ;
}
}
 
public class Ex07Main {
public static void main(String[] args) {
Ex07Class e7c = new Ex07Class();
// e7c.x = 10;
e7c.setX(10); //e7c.x => 10으로 변경됨.
// e7c.x = 20;
e7c.setY(20); //e7c.y => 20으로 변경됨.
System.out.println(e7c.x); //값만 가져옴
int a = e7c.getX();
e7c.getX(); //가져옴과 동시에 
}
}
 
728x90
반응형

+ Recent posts