반응형
- 객체 지향 프로그래밍
- apple 패키지
- AppleSeller 클래스
- AppleBuyer 클래스
* 일반적인 순서 : 필드(멤버 변수) - 생성자 - 메소드
- 클래스 이름은 대문자로 시작 (메소드는 소문자로 시작)
- 필드
선언 및 초기화. 객체의 상태를 저장하고 유지.
- 생성자
반환값이 없음!
클래스 내부에 정의, 클래스와 동일한 이름이여야 함.
자바에서 클래스에 생성자가 명시적으로 정의되지 않은 경우, 컴파일러는 기본 생성자(default constructor)를 자동으로 생성
- 필드 초기화: 생성자를 사용하여 객체가 생성될 때 필드를 초기화합니다.
- 매개변수 전달: 생성자를 통해 객체에 필요한 초기값을 전달받을 수 있습니다.
- 객체 초기 설정: 객체의 초기 상태를 설정하거나 다른 초기화 작업을 수행합니다.
- 자원 할당 및 해제: 생성자에서 자원을 할당하거나 소멸자에서 자원을 해제하는 작업을 수행할 수 있습니다.
- 메소드
객체의 특정 동작을 구현하며, 필드에 저장된 데이터를 처리하거나 다른 메소드를 호출하여 작업을 수행하는 역할
- 이름: 메소드는 이름을 가지며, 해당 이름을 사용하여 메소드를 호출합니다. 클래스명과 다를 수 있음.
- 매개변수: 필요에 따라 메소드에 매개변수를 전달할 수 있습니다.
- 반환값: 메소드는 작업을 수행한 결과를 반환할 수 있습니다. 반환값이 없는 경우에는 void라고 표시합니다.
- 접근 제어자: 메소드에는 접근 제어자를 사용하여 해당 메소드의 접근 범위를 지정할 수 있습니다.
- 구현: 메소드는 중괄호 {} 안에 구현되어야 하며, 해당 메소드가 수행할 코드를 포함합니다.
package apple;
// 두 인스턴스가 발생하는 장소
public class Apple {
public static void main(String[] args) {
AppleSeller seller = new AppleSeller();
AppleBuyer buyer = new AppleBuyer();
buyer.buyApple(seller, 5000);
seller.tellSeller();
buyer.tellBuyer();
}
}
- APPLE_PRICE : 상수이기 때문에 대문자로 표기
package apple;
// 사과를 파는 사람
public class AppleSeller { // 속성 (필요한 정보)
final int APPLE_PRICE = 1000; // 상수(대문자)
int appleCount = 50; // 개수
int sellerMoney = 0; // 보유 금액
/////// 생성자 (사과를 파는 기능) ///////
public int sellApple(int money) {
int num = money / APPLE_PRICE; // 받은 돈 -> 내 돈에 저장
sellerMoney += money; // 줄 사과 -> 내 사과에서 빼기
appleCount -= num;
return num;
}
// 내 정보를 말하는 기능 tellSeller
public void tellSeller() {
System.out.println("판매자의 남은 사과는 " + appleCount + "개 입니다.");
System.out.println("판매자의 수익은 " + sellerMoney + "원 입니다.");
}
}
package apple; // 사과를 사는 사람
public class AppleBuyer { // 속성
int appleCount; // 가지고 있는 사과의 수
int buyerMoney = 10000; // 보유 금액
public AppleBuyer() { // 기본 생성자
}
// 사과를 사는 기능
public void buyApple(AppleSeller seller, int money) {
int num = seller.sellApple(money); // 구매한 사과 수
appleCount += num; // 내 사과 수에 더하기
buyerMoney -= money; // 내 돈에서 빼기
}
// 내 정보를 말하는 기능 tellBuyer
public void tellBuyer() {
System.out.println("구매자가 구매한 사과는 "+ appleCount + "개 입니다.");
System.out.println("구매자의 남은 돈은 "+buyerMoney+"원 입니다.");
}
}
setter, getter 를 메뉴에서 자동으로 작성이 가능함.
메뉴 Source - Generate Getters and Setters
void = 리턴이 없음.
void 이외의 타입에는 return이 필요함
public class Human {
String name;
int age;
String addr;
int money;
public Human(String name, int age) { // 생성자
this.name = name;
this.age = age;
}
public String getName() { // 메소드를 생성해서 다른 패키지에서 불러오기 가능
return name;
}
// setter
// getter
public void setMoney(int m) { // 돈 저장
this.money = m;
}
public int getMoney() { // 돈 가져오기
return money;
}
////////////// setter
public void setAddr(String addr) {
this.addr = addr;
}
////////////// getter
public String getAddr() {
return this.addr;
}
}
----------------------------------------------
public class Test01 {
public static void main(String[] args) {
// Human h1 = new Human(); // 기본 생성자
Human h1 = new Human("홍길동", 150);
System.out.println(h1.getName());
h1.setMoney(5000);
System.out.println(h1.getMoney());
h1.setAddr("서울시");
String addr = h1.getAddr();
System.out.println(addr);
}
}
public static void main(String[] args) {
String str1 = "Programming";
String str2 = "Programming";
String str3 = new String("Programming");
System.out.println(str1 == str2); // true
System.out.println(str1 == str3); // false
System.out.println(str1.equals(str3)); // true
System.out.println(str2.equals(str3)); // true
}
}
- C언어 예제
#include <stdio.h>
// standard input output
int main() {
int num = 100; // 변수지정
printf("%d\n", num + 1);
printf("%d", num + 1);
char ch1[] = "apple";
printf("%s\n",ch1);
// 포인터 선언
int *pointer; // 메모리에 접근해서 해당 위치의 문자 추출,* 참조 연산자
char *ch = "KOREA";
printf("%s\n", ch);
printf("%s\n", ch+3); // 3번째 문자부터 (EA)
printf("%c\n", *(ch+3)); // (E)
printf("%c\n", *ch+3); // K가 가진 값에서 + 3 (KLMNOPQR에서 N)
return 0;
}
- C언어 정보처리기사 실기 기출문제
#include <stdio.h>
int main(){
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
// [12, 24, 36]
printf("%d\n", *arr[1] + **arr + 1); // ** 배열 자체
return 0;
// 24 + 13 = 37
}
#include <stdio.h>
void align(int a[ ]) { // 배열 정렬하기
int temp;
for (int i = 0; i < 4; i++) {
for (int j=0; j < 4 - i; j++) {
if (a[j]> a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int main( ) {
int a[ ] = { 85, 75, 50, 100, 95 };
align(a);
for (int i = 0; i < 5; i++) printf("%d ", a[i]);
return 0;
// 50 75 85 95 100
}
- 파이썬
주석처리
# 한 줄 주석
"""
여러줄 주석 또는 ''' 3개
num = 100
if num == 100:
print("100 맞아")
else:
print("100아님")
print("if문 밖")
print(num in [100,200,300]) # 뒤의 배열 안에 num값이 있냐
def exam(num1, num2): # 함수 선언
print(num1 + num2)
exam(11,22)
def exam(num1, num2 = 2): # num2에 2를 입력
print(num1 + num2)
exam(11)
def exam(num1, num2 = 2):
print('a=', num1, 'b=', num2)
exam(11,2) # a= 11 b= 2 (띄어쓰기 필수!)
True/False 대문자로 써야함.
a,b = 100, 200
print(a==b) # False (대문자 필수!!)
a = 100
result = 0
for i in range(1,3):
result = a >> i
result = result + 1
print(result)
# 01100100 = 100
print(100 >> 1) # -0110010 = 50
print(100 >> 2) # --011001 = 25
list = ['홍길동', '김길동', '이길동', '박길동']
for i in list:
print(i)
for i in range(1, 10): # 1~10까지 돌려서 나오는 값을 i로
print(i) # 1 2 3 4 5 6 7 8 9
class good :
li = ["seoul", "gyeonggi", "incheon"]
g = good()
str01 = ''
for i in g.li:
str01 = str01 + i[0]
print(str01) # 배열이 앞 글자만 따옴 (= sgi)
반응형
'개발 공부 Today I Learned' 카테고리의 다른 글
[국비 21일차 TIL] 자바 오버라이드, 오버로드, 다형성, 추상화 (0) | 2023.12.19 |
---|---|
[국비 20일차 TIL] 자바 static, 인스턴스, 상속 (1) | 2023.12.18 |
[국비 18일차 TIL] 객체 지향 OOP (0) | 2023.12.14 |
[국비 17일차 TIL] 자바 String 메소드 (0) | 2023.12.13 |
[국비 16일차 TIL] JAVA 배열 복사 / 이중for문 / String (0) | 2023.12.12 |
댓글