Java 기초 1

2025. 1. 15. 13:50·Java

프로젝트파일명/build/classes/basic_html/java1.class => 실행파일

프로젝트파일명/src/main/java/basic_html/java1.java => 소스파일

 

packeage 이름 = 프로젝트이름

public class 는 한 파일에 하나만

class명 중복 불가능

기본 class 이름 = 파일명

static : 메모리에 저장시켜서 사용하는 자료형    //쓸수도안쓸수도

 

 신경써야할것

1. java : class, method를 잘 관리

2. cpu : 쓰레드(thread)

3. memory : 메모리관리 

 

콘솔에 출력

sysout+컨트롤+스페이스바

System.out.println("출력");    //자동줄바꿈

System.out.printf("출력");    //줄바꿈안함 %사용 가능

 

 

1. 자료형

//데이터 범위에 주의

구분
자료형
크기
범위
문자형
char
2 byte
0 ~ 65,535 (유니코드)
정수형
byte
1 byte
-128 ~ 127
short
2 byte
-32,768 ~ 32,767
int
4 byte
-2,147,483,648 ~ 2,147,483,647
long
8 byte
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형
float
4 byte
3.4E-38(-3.4*10^38) ~ 3.4E+38(3.4*10^38) (7digits)
double
8 byte
1.79E-308(-1.79*10^308) ~ 1.79E+308(1.79*10^308) (15digits)
논리형
boolean
1 byte
true, false

 

 

String, Inteser 은 클래스

 int 와 다르게 Integer는 클래스형 변수 //컨트롤+스페이스바 눌렀을때 C아이콘이 붙어있음

package basic_html;

public class java1 {

	// main method
	// static(쓸수도안쓸수도있음) : 메모리에 저장시켜서 사용하는 자료형
	public static void main(String[] args) {
		System.out.println("자바 실행!");
		
		//String~double : 데이터형 (Byte)
		String user = "구나영";
		int age = 27; // 숫자
		Integer point = 5000; // 숫자열(class)
		float money = 25.5f; // 소수점(실수)
		double sales = 0.8;	// 소수점
		
		int sum = age + point;	// 정수 -> int, Integer  
		System.out.println(sum);
		
		float sum2 = point * money;
		System.out.println(sum2);
		
		String msg = "님 환영합니다.";
		String login = user + msg;
		System.out.println(login);//자동줄바꿈
		
		System.out.printf("출력 테스트%n");//줄바꿈안함 %사용 가능
		System.out.printf("%s님 로그인 되셨습니다. 포인트 : %d%n", user, point);
		
		boolean ck = true;
		
		short no = 32767;
		long no2 = 500000000000L;	//long : 맨뒤에 L붙여서 사용
		System.out.println(no);
		
		char agree =  'Y'; // char : 한글자만 사용, ''외따옴표만 사용
	}
}

 

 

 

2. 전역변수, 지역변수, 자료형변환

package basic_html;

public class oop2 {
	//필드
	String user = "홍길동";

	public static void main(String[] args) {
		int point = 8000;	//지역변수
		String money = "9000";
		String delivery = "3000";
        
        	//int sum = Integer.parseInt(money) + Integer.parseInt(delivery);
		int sum = Integer.valueOf(money) + Integer.valueOf(delivery);
		System.out.println(sum);
		
		Integer no2 = null;
		
		float m = 10.23f;
		String total = m + " sale 가격";	//간혹 오류 발생해서 아래처럼 사용
		String total2 = String.valueOf(m) + 10;
	}
}

 

          • 필드 : class와 method 사이의 영역
            • 필드에 전역변수를 선언하여 셋팅, 객체, 외부class 호출 
          • Integer.parseInt() : 문자를 숫자로 바꾸는 클래스 (int)
          • Integer.valueOf() : 문자를 숫자로 바꾸는 클래스 (Integer)
            • int는 null값을 못가짐 Integer는 null 가능
          • String.valueOf() : 숫자, 소수점을 문자로 자료형을 변환하는 클래스 

 

3. 클래스와 메소드 

package basic_html;

//메인 클래스
public class oop3 {
	public static void main(String[] args) {
		oop3_box ob = new oop3_box(); // new 클래스() : 클래스를 호출
		ob.kkk("hong"); // 해당 객체를 호출 후 메소드를 실행
		ob.aaa(50); // 인수값 전달
		new oop3_box2().aaa(); // 인스턴스 적용 후 메소드 호출
	}
}

//외부 클래스
class oop3_box {
	public void kkk(String b) { // 일반 메소드 (문자 매개변수 받음)
		System.out.println("외부 클래스 호출 및 메소드 실행");
		System.out.println(b);
		oop3_box2 ob2 = new oop3_box2();
		ob2.ccc();
	}
	public void aaa(int a) { // 매개변수로 값을 받는 경우 자료형 넣기
		System.out.println("aaa메소드");
		System.out.println(a);
	}
}

class oop3_box2 {
	public void aaa() { // 메소드 명이 같아도 클래스명이 다르면 다름
		System.out.println("추가 클래스 호출!");
	}
	public void ccc() {
		System.out.println("회원가입 메소드 처리");
	}
}

 

 

4. 필드의 변수 핸들링

package basic_html;

public class oop4 {
	// static : 메모리에 해당 변수를 저장 (무조건 필드에만 적용하기)
	static String user = "홍길동";

	//메모리에 저장된 메소드
	public static void main(String[] args) {
		System.out.println(user);	// 같은 메모리 상에서 해당 변수를 호출 //this 안씀!
		oop4_box pb = new oop4_box();
		// 외부 클래스의 필드에 있는 변수의 값을 변경할 수 있으며, 가져올 수 있음
		pb.product = "김치냉장고";
		pb.money = 600000;
		pb.aaa();	
	}
}

class oop4_box{
	String product = "냉장고";
	static int money = 50000;	// 메모리에 해당 변수를 등록
	
	// 단, 외부 클래스를 이용하여 메소드를 실행 전역변수를 호출할 경우 
	// this또는 변수명으로 static
	public void aaa() {
		String product = "에어컨";
		System.out.println("실행!");
		System.out.println("상품가격 : "+this.money);		//외부클래스의 static전역변수를 사용할땐 this 써도 안써도 됨 //static 메소드가 아니기때문
		System.out.println(this.product);	//전역변수 사용할땐 this를 꼭 사용하기
		System.out.println(product);
		this.bbb();
	}
	public void bbb() {
		//메인 클래스를 객체화하여, 해당 필드에 있는 변수를 호출함
		oop4 po4 = new oop4();
		System.out.println(po4.user);
	}
}

 

😊응용문제

외부 클래스를 이용하여 다음과 같이 결과값이 출력되도록 코드를 작성
 단, 전역변수에 다음과 같은 결과값이 있습니다.
 전역변수 : 100000, 80000, 3.5
 해당 전역변수의 모든 값을 외부 클래스에서 이관받아서 세개를 곱한 값을 출력
public class oop5 {
	static long n1 = 100000l;
	static int n2 = 80000;
	static float n3 = 3.5f;
	
	public static void main(String[] args) {
		oop5_box op5 = new oop5_box();
		op5.mult(n1,n2,n3);
		
		oop5 op = new oop5();
		op.main2();
		//main2 메소드에 static을 적용한 경우에는 아래와 같이 사용
		//main2();
	}
	
	//메인 클래스에 일반 메소드를 활용한 상황
	public void main2() {
		System.out.println("메인 일반 메소드 호출");
	}
}

class oop5_box{
	public void mult(long a, int b, float c) {
		double total = a*b*c;
		System.out.println(total);
	}
}
  • 자료형의 범위에 유의 //오버플로우, 언더플로우
  • Long.valueOf() : 클래스를 이용하여 자료형을 long으로 변경

5. 메소드 형태

public class oop6 {
	public static void main(String[] args) {
		oop6_box ob = new oop6_box();
		ob.aaa();
		ob.aaa("구나영");
		ob.aaa(27);
		String result = ob.aaa(10,20);
		System.out.println(result);
		int result2 = ob.aaa("홍길동","01012345678");
		System.out.println(result2);
	}
}

class oop6_box{
	public oop6_box(){	//즉시 실행 메소드
		System.out.println("즉시 실행 메소드");
	}
	
	//메소드 명은 동일하게 사용가능 
	//단, 매개변수에 할당되는 자료형으로 구분
	public void aaa() {	//일반 메소드 
		System.out.println("일반 메소드 실행");
	}
	public void aaa(String a) {	//문자를 할당받는 메소드 
		System.out.println("일반 메소드 : "+a);
	}
	public void aaa(int a) {	//숫자를 할당받는 메소드
		System.out.println("일반 메소드 : "+a);
	}
	
	/* 자료형 return 메소드이며, 해당 return에 동일한 자료형 데이터를 return해야함 */
	public String aaa(int a, int b) {	//리턴 메소드
		int sum = a + b;
		String msg = "";
		if(sum % 2 ==0) {
			msg = "짝수";
		}else {
			msg = "홀수";
		}
		return msg;
	}
	
	public int aaa(String a, String b) {
		int z = 1;
		return z;
	}
}
  • 즉시 실행 메소드 : 클래스명 동일한 메소드
  • 이름이 같은 메소드 사용가능!
    • 단, 매개변수가 모두 달라야함
  • return 메소드 : return이 해당 메소드와 동일한 자료형이어야함
    • String : 숫자리턴 불가능
    • int : null 불가능

주저리주저리

꿀팁 

프리퍼런스 제너럴 힙체크 : 메모리사용량보여줌

저작자표시 비영리 변경금지 (새창열림)
'Java' 카테고리의 다른 글
  • 복습 8 - java 기초
  • Java 기초 4
  • Java 기초 3
  • Java 기초 2
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      re_java10
      re2
      file25_t
      file24
      spring-boot
      net1
      noticewriteok
      ab1
      file25
      io_dto
      net2
      Oracle
      net3
      datalist
      notice_writer
      net4
      java_io1~10
      macbook pro m4
      exam1_1~10
      net5~10
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    Java 기초 1
    상단으로

    티스토리툴바