본문 바로가기
CLASS/JAVA

#2-2 / JAVA - OOP 🔥

by hingu 2024. 4. 30.

JAVA - OOP(객체지향)

단위 영역 각각 개발 가능 - package(나중에 웹의 directory가 됨, package 없이는 class 생성 x)

=> 나중에 하나로 합침

 

JAVA의 장점 

  • 멀티 스레드를 활용함
    (따로 라이브러리가 아닌 자체 멀티스레드 기능 탑재)
  • 코드 심플
  • 객체지향 언어
  • 유지보수 용이
  • 여러가지 운영체제 서버에 적합
  • 독립적 플랫폼을 사용함 -  VM을 사용하기 때문에 가능

단점

  • VM( Virtual Machine ) 이 있어야 돌아감

 

⚡ 변수 종류 및 출력
- class 생성 후 method를 생성할 수 있음
package oop; //package 단위명 = project 디렉토리 구분

//변수 종류 및 출력
public class oop1 { //class명

	public static void main(String[] args) { //method : (javascript의 함수에 해당)
		//String[] args : 인자값, 빠지면 작동 안됨
		//System.out : 결과를 출력하는 클래스
        
		//println : 출력형태 메소드(한칸 내려쓰기)
		System.out.println("홍길동"); // ln : <br>과 같다고보면 댐 
		System.out.println("강감찬");
        

		//print : 모든 내용을 한줄에 출력(유관순이순신 이렇게 출력)
		System.out.print("유관순"); 
		System.out.print("이순신");
        
		// printf : (지시자 %s-문자,%b-숫자,%n-줄바꿈)에 다음 ""에 들어있는 값 넣어서 출력
		System.out.printf("%s님 %s입니다!","에이핑크","화이팅"); 

	}

}
⚡ class형태,자료형태의 data type
- 단위 크기 : bit,Byte,KByte,MByte,GB,TB... 

- class형태(자료 형태를 for문으로 돌려 열로 만든 것) / 자료형태(숫자 or 글자 한글자)
package oop; 

public class oop1 { //class명

	public static void main(String[] args) { 
		
		//---- class 형태
		String user = "홍길동"; //문자열 변수(class)
		Integer age = 25; //숫자열(class)
        
		//--- 자료 형태
		int point = 5000; //숫자(정수)
		float money = 25.25f; //소수(실수)
		double sales = 0.13; //소수
        
		//2byte:한글자(한글자만 담을 수 있음), ""붙이면 안됨~! ''붙어야함 !!!!!
		char agree = '홍'; 
        
		//System.out.print(user + "님 환영합니다");
		System.out.printf("%s 님 환영합니다. 포인트 : %d" , user, point);
        
		int sum = age + point;
		System.out.println(sum);
		
		//float total = money + sales; //error
		//float < double 자료형이 더 크다
		//float + float : float,double 둘다 계산 결과 가능 
		// double + double : 무조건 double로 받기 / double + float : double(더 큰 자료형)
		double total = money + sales;
		System.out.println(total);
        
		//정수 + 실수 결과는 실수로 처리해야만 정상적으로 계산이 처리된다.
		int a = 90;
		float b = 12.3f;
		float c = a+b; //float,double 둘다 가능
		System.out.println(c);
        
	}

}
class형태인지 자료형태인지 ctrl+spacebar로 확인 가능
⚡ 자료형(숫자)
package oop;

public class oop2 {

	public static void main(String[] args) {
		//int : 21억정도까지만 담을 수 있음 
		//long : 9경(21억 이상이면 뒤에 L붙여줘야함)
		//short : 3만까지,그 이하(ex-장바구니..)
		long a = 2234567891L;
		System.out.println(a);
		short b = 32345; //정상출력
		System.out.println(b);

	}

}
⚡ 문자 형태 변환
package oop;
//문자 자료형을 클래스로 변환
public class oop2 {

	public static void main(String[] args) {
		char word = '홍'; // 꼭 '' 사용!
		String name = String.valueOf(word); //char => String 형태로 변환
        
		//class java.lang.String 출력(class타입형태 출력해라)
		System.out.println(name.getClass());
		
        
		String id = "hong";
		char name2 = id.charAt(2); //charAt(배열번호) / (3번째 단어 배열 출력하세요)
		System.out.println(name2); //n 출력 (javascript의 indexOf() 기능)
		
	}

}
⚡ 숫자형태 변환
package oop;

public class oop2 {

	public static void main(String[] args) {
    
		/* Integer(int 사이즈 정도 된다) => short,int,byte 변환 가능 , 실수형은 불가능 */
		//숫자 자료형을 클래스로 변환
		int n = 100;
		Integer z = n;
		System.out.println(z);
		
		//숫자 클래스를 숫자 자료형으로 변환
		Integer n2 = 1000;
		int z2 = n2;
		System.out.println(z2);
		
	}

}
⚡ 문자열 클래스를, 숫자형 클래스 or 숫자 자료형으로 변환
package oop;

public class oop2 {

	public static void main(String[] args) {
    
		/* 문자열 클래스를 숫자형 클래스 또는 숫자 자료형으로 변환 */
		String total = "10000";
		String etc = "19890000";
		
		//두가지 방법(p+p,p+v,v+v 다 쓸 수 있음)
		//parseInt : 기본 자료형 int -> 직접적으로 문자 데이터를 변환
		//valueOf : 기본 자료형 int 
		  // -> 문자 데이터 값을 검토 후 변환(정수인지 실수인지..등 - 실제 속도가 더 느림)
		  // 안에 paseInt가 포함되어있다
		
		//더해지는 값 봐가면서 데이터 타입 정해줘야함 short는 x (Integer은 사용 가능)
		//javascript의 Number()기능
		int all = Integer.parseInt(total) + Integer.parseInt(etc); 
		System.out.println(all); 
		
		int all2 = Integer.parseInt(total) + Integer.valueOf(etc);
		System.out.println(all2); 
        
        
        /*-----------------------------------------------*/
        
		//실수 자료형을 문자 클래스로 변환
		float m = 38.72f;
		String sm = String.valueOf(m);
		System.out.println(sm);
		
	}

}
  • Parsing : JASON 및 XML을 받은 문자를 배열화 하는 작업을 말함
  • Parser : database의 값을 XML또는 JASON으로 변환 작업을 하는 것을 말함

 

⚡ 외부 클래스 및 메소드 데이터 호출
- 동일한 클래스명 사용 불가(한 패키지 전체에서도 중복 불가)
package oop;
//클래스와 메소드의 형태
public class oop3 { 
	//public class는 한개의 파일당 한번만 사용 가능
	//public class명과 파일명은 동일해야함 즉,public class abc => abc.java

	public static void main(String[] args) {
		//main : public class에서만 사용하는 메인(실행) 메소드
		//실제로는 외부 class를 작성 후 여기에 때려 넣음

		//새롭게 호출하겠단 뜻~ new하는 순간 메모리에 저장(pc 껏다 키면 다 사라짐)
		box b = new box(); //인스턴스화 시킴
		//클래스(new box()),객체(box),인스턴스(b)
		
		b.abc(); //해당 클래스에 abc메소드 호출
		b.bbb();
		
		//b를 인스턴스명으로 사용했기 때문에 다른 변수로 사용할 수 없음
		
		box2 b2 = new box2();
		b2.kkk();
		
	}

}


class box { //외부 class 선언

	public void abc() { //box를 호출해야 abc 메소드를 쓸 수 있음
		System.out.println("외부 클래스 및 메소드 데이터 호출");
	} 
	
	public void bbb() {
		System.out.println("bbb 메소드 데이터 호출~!");
	}
	
}

class box2 {  //동일한 클래스명 사용 불가(한 패키지 전체에서도 중복 불가)
	public void kkk() {
		System.out.println("kkk 메소드 호출!");
	}
}
⚡ 메소드 인자값 호출 및 전달
- 외부 class는 동일한 package에 있을 경우 같은 이름을 사용하지 못함
- 해당 class 안에서 method는 동일한 이름을 사용할 수 있음
  (단, 인자값에 대한 자료형 및 인자값 갯수에 따라 동일한 이름을 사용가능함)
package oop;
//메소드 인자값 호출 및 전달 
public class opp4 {

	public static void main(String[] args) {
		oop4_box op4 = new oop4_box();
		op4.abc();
		op4.abc("123");
		op4.abc(5, 2);	
	}
}

class oop4_box {

	public void abc() {
		System.out.println("테스트");
	}
	
	//자바는 인자명 작성시 형태도 꼭 적어줘야함
	//아래 네개는 다 다른거 , 인자값의 형태가 다 다르므로
	public void abc(String a) { //문자 인자값을 받는 메소드
		System.out.println("테스트222");
	}
	
	public void abc(int a) { //숫자 인자값을 받는 메소드
		System.out.println("테스트333");
	}
	
	public void abc(int a, int b) { //숫자 2개의 인자값을 받는 메소드
		System.out.println("테스트333");
	}
	
	//이렇게는 사용 불가
	//	public void abc(int a) { 
	//		System.out.println("테스트333");
	//	}
		
}

 

'CLASS > JAVA' 카테고리의 다른 글

#3-2 / 반복문  (0) 2024.05.02
#3-1 / 외부class,if문  (0) 2024.05.02
#2-1 / 로그인 form(javascript)  (0) 2024.04.30
#1-2 / Apache-tomcat 웹 페이지  (0) 2024.04.29
#1-1 / start,setting  (0) 2024.04.29