JAVA 기초

JAVA 8

Vanillwa 2023. 8. 23. 09:15

class

package ex1_class;

//클래스의 종류
//1. main이 들어있는 실행용 클래스
//2. 다른 클래스에서 사용하기 위한 참조 클래스

public class Computer {
	//클래스의 구성요소
	//1. 변수(멤버, 필드, 속성)
	//2. 함수(메소드, 기능)
	//3. 생성자
	
	int ssd = 1024;
	int ram = 64;
	float cpu = 4.8f;
	String color = "white";
	
	//컴퓨터의 정보를 출력하는 함수 만들기
	
	//메서드란 어떤 작업을 수행하기 위한 명령문의 집합
	//반복적으로 사용되는 코드를 줄이기위해 사용
	//자주 사용되는 코드를 메서드로 작성 후 필요할 때 호출
	
	public void getInfo() {
		System.out.println("cpu : "+cpu+"Hz");
		System.out.println("ssd : "+ssd+"GB");
		System.out.println("ram : "+ram+"GB");
		System.out.println("color : "+color);
		System.out.println();
	}
	
	//함수는 크게 두가지 부분
	//1. 선언부 : 함수의 기능이 정의되어 있는 부분
	//2. 호출부 : 함수를 사용하기 위해 호출하는 부분
	//함수의 선언은 함수 안에서 불가
	//함수의 호출은 함수 안에서만 가능
	
	//함수의 기본형
	//접근제한자 반환형 함수명(매개변수1, 2...){
	// 	함수에 들어갈 명령
	//	return 반환값;
	//}
	
	//접근제한자
	//소스코드에 접근할 수 있는 범위를 설정
	//1. public : 모든 접근을 허가 
	//2. private : 현재 클래스의 객체에서만 사용을 허가
	//3. protected : 상속관계의 객체들에만 허가
	//4. default : 같은 패키지 내의 객체에만 허가
	
	//반환형
	//메서드가 처음부터 끝까지 수행을 마친 뒤 반환해야 할 값이 있을경우 기입
	//int float과 같은 기본자료형 뿐만 아니라 String 객체도 가능
	//반환할게 없을 경우 void
	
	//함수명
	//첫글자는 소문자로
	
	//매개변수
	//함수를 호출할 때 보내는 값
	//받은 값으로 함수 내에서 사용 가능
}
package ex1_class;

public class ComMain {
	public static void main(String[] args) {
		//객체 생성법
		//클래스명 객체명 = new 클래스명();
		
		Computer com1 = new Computer(); //컴퓨터 한대 생산
		Computer com2 = new Computer(); //두대
		com1.ssd = 2048;
		//다른 클래스에 있는 변수에 접근하는 법
		//객체명.변수명
		
		//참조클래스에 있는 함수 사용법
		//객체명.함수명();
		com1.getInfo();
		com2.getInfo();
	}
}

실행 결과

 


 

method

package ex2_method;

public class MethodTest {
	public void test(int n) {
		n++;
		System.out.println("n : "+n);
	}
	
	//더하기 함수
	public int add(int a, int b) {
		return a+b;
	}
	
	//1~10까지 출력하는 f1()함수
	public void f1() {
		for(int i=1;i<=10;i++)
			System.out.printf("%d ",i);
		System.out.println();
	}
	
	//1~10까지 총합을 반환하는 f2()함수
	public int f2() {
		int n=0;
		for(int i=1;i<=10;i++)
			n+=i;
		return n;
	}
	
	//매개변수 단을 받아 구구단 출력하는 f3()함수
	public void f3(int dan) {
		for(int i=1;i<=9;i++)
			System.out.printf("%d x %d = %d\n",dan,i,dan*i);
	}
	
	//1~n까지의 총합을 반환하는 f4()함수
	public int f4(int n) {
		int sum=0;
		for(int i=1;i<=n;i++)
			sum+=i;
		return sum;
	}
	
	//함수의 종류는 input과 output의 유무에 따라 총 4가지로 나뉜다
}
package ex2_method;

public class MethodTestMain {
	public static void main(String[] args) {
		int su = 100;
		
		MethodTest a = new MethodTest();
		a.test(su);
		System.out.println("su : "+su);
		
		int x=1,y=2;
		System.out.println("add(1,2) : "+a.add(x,y));
		
		a.f1();
		
		System.out.println("f2() : "+a.f2());
		
		a.f3(4);
		
		int n = 10;
		System.out.printf("f4(%d) : %d\n",n,a.f4(n));
	}
}

실행 결과

 


 

setter & getter

package ex3_computer;

public class Computer {
	private String brand = "lucky gumsung";
	int ssd = 512;
	
	//setter 
	public void setBrand(String a) {
		brand = a;
	}
	//private으로 만들어진 변수에 접근
	//getter
	public String getBrand() {
		return brand;
	}
}
package ex3_computer;

public class ComMain {
	public static void main(String[] args) {
		Computer com1 = new Computer();
		//com1.brand는 private이기 때문에 접근이 불가능
		
		com1.setBrand("apple");
		System.out.println(com1.getBrand());
	}
}

실행 결과

 


 

this

package ex4_person;

public class Person {
	private String name,phone;
	private int age;
	
	public String getName() {
		return name;
	}
	//메서드에선 지역변수가 우선이기 때문에
	//클래스 변수와 구분토록 this를 사용해야 함
	public void setName(String name) {
		this.name = name;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
}
package ex4_person;

public class PersonMain {
	public static void main(String[] args) {
		Person p1 = new Person();
		
		p1.setName("홍길동");
		p1.setAge(30);
		p1.setPhone("010-1111-1111");
		
		System.out.println(p1.getName());
		System.out.println(p1.getAge());
		System.out.println(p1.getPhone());
	}
}

실행 결과

 


 

예제 풀이

package ex5_work;

public class CalTest {
	public int getResult(int a,int b,char c) {
		int calc = 0;
		switch(c) {
		case '+': calc = a+b; break;
		case '-': calc = a-b; break;
		case '/': calc = a/b; break;
		case '*': calc = a*b; break;
		}
		return calc;
	}
}
package ex5_work;

import java.util.Scanner;

public class CalMain {
	public static void main(String[] args) {
		//클래스로 계산기 만들어보기 문제
		//CalTest 클래스를 만들고
		//사칙연산을 해주는 getResult() 함수를 만든다
		//main에서 키보드에서 두개의 숫자와 연산자를 입력 받은 후
		//getResult()함수로 전달하여 계산하고 결과 반환
		CalTest cal = new CalTest();
		Scanner sc = new Scanner(System.in);
		
		
		System.out.printf("첫번째 숫자 입력 : ");
		int a = sc.nextInt();
		System.out.printf("두번째 숫자 입력 : ");
		int b = sc.nextInt();
		System.out.printf("연산 기호 입력 : ");
		char c = sc.next().charAt(0);
		
		System.out.printf("%d %c %d = %d\n",a,c,b,cal.getResult(a, b, c));
		sc.close();
	}
}

실행 결과

 

'JAVA 기초' 카테고리의 다른 글

JAVA 9-2  (0) 2023.08.23
JAVA 9-1  (1) 2023.08.23
JAVA 7-2  (0) 2023.08.22
JAVA 7-1  (0) 2023.08.22
JAVA 6-2  (0) 2023.08.21