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();
}
}