SMALL
package Class;
class 사람 {
String 이름;
String 직업;
String 성별;
int 나이;
String 혈액형;
사람(String 이름) {
this("값","값","값"); //this() 다른 생성자를 오버로딩으로 호출한다. 반드시 첫줄에 작성해야한다.
System.out.println("첫번째 생성자");
}사람(String 이름, String 직업) {
System.out.println("두번째 생성자");
}사람(String 이름, String 직업, String 성별) {
System.out.println("세번째 생성자");
}사람(String 이름, String 직업, String 성별, int 나이) {
System.out.println("네번째 생성자");
}사람(String 이름, String 직업, String 성별, int 나이, String 혈액형) {
System.out.println("다섯번째 생성자");
}
//메소드
String 소개하기() {
String str = "나의 이름은 " + this.이름+"이고, 직업은 " + this.직업+
", 성별은 "+성별+", 나이는 "+나이+"혈액형"+혈액형;
System.out.println(str);
return str;
}
//나이를 설정하는 메서드 작성
void set나이(int 나이) {
this.나이 = 나이;
}
//나이값을 읽어오는 메서드 작성
int get나이() {
return 나이;
}
}
public class C3_사람Ex {
public static void main(String[] args) {
//1. 객체를 생성한다
사람 홍길동 = new 사람("값","값","값",100); // 오버로딩
사람 이순신 = new 사람("값");
System.out.println();
사람 강감찬 = new 사람("강감찬","장군","남자",30,"A");
System.out.println(강감찬.이름);
System.out.println(강감찬.직업);
System.out.println(강감찬.성별);
System.out.println(강감찬.나이);
String str = 강감찬.소개하기();
System.out.println(str);
//나이값을 반환해주는 메서드를 읽어서 출력해본다
강감찬.set나이(100);
int age = 강감찬.get나이();
System.out.println("강감찬님의 변경된 나이는 " +age+"살입니다.");
System.out.println("강감찬님의 변경된 나이는 "+강감찬.get나이()+"살입니다.");
}
}
package Class;
/*
Circle 클래스
. 외부에 생성
. 필드 : int radius 1.pizza를 생성한다
string name -이름,크기
. 생성자 : 기본생성자 -출력 : 피자이름,피자면적
. 메소드 : double getArea() - 면적구하기
2.donut을 생성한다
*/
class Circle {
String name;
int radius;
final double PY = 3.14;
Circle(){
this.radius = 0;
this.name = "name";
}
Circle(String name, int radius){
this.radius = radius;
this.name = name;
}
double getArea() {
return radius * radius * PY;
}
//set메서드
void setRadius(int radius) {
this.radius = radius;
}
void setName(String name) {
this.name = name;
}
}
public class C4_CircleEx {
public static void main(String[] args) {
// 1. Pizza 객체 생성
Circle pizza = new Circle();
pizza.setRadius(10);
pizza.setName("자바피자");
double area = pizza.getArea();
System.out.println("피자 이름: " + pizza.name);
System.out.println("피자의 크기: " + area);
// 2. Donut 객체 생성
Circle donut = new Circle();
donut.setRadius(5);
donut.setName("자바도넛");
System.out.println("도넛 이름: " + donut.name);
System.out.println("도넛 면적: " + donut.getArea());
}
}
피자 이름: 자바피자
피자의 크기: 314.0
도넛 이름: 자바도넛
도넛 면적: 78.5
package Class;
import java.util.Scanner;
//설계 클래스
class Person {
// 이름(name) - 문자열, 나이(age) - 정수, 성별(gender) - 문자열
String name;
int age;
String gender;
// 생성자 - 객체를 생성하는 역할을 한다. 반드시 생성자가 있어야 한다. void/return이 없다
Person(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// 메서드 = 기능(동사), 반환타입/반환안하는타입(void)
// print() - 이름, 나이, 성별을 출력
void print() {
System.out.println("이름: " + name + ", 나이: " + age + ", 성별: " + gender);
}
}
//실행클래스
public class C5_PersonEx {
public static void main(String[] args) {
// 친구들을 생성한다 - 5명 생성
Person 민수 = new Person("민수", 15, "남");
Person 철수 = new Person("철수", 19, "남");
Person 영희 = new Person("영희", 15, "여");
Person 윤서 = new Person("윤서", 18, "여");
Person 가영 = new Person("가영", 21, "여");
// 친구들 출력
민수.print();
철수.print();
영희.print();
윤서.print();
가영.print();
System.out.println("\n--- 새로운 친구 추가 ---");
// 배열로 친구 추가
Person[] friends = new Person[5];
Scanner sc = new Scanner(System.in);
for (int i = 0; i < 5; i++) {
System.out.print((i + 1) + "번째 친구 이름을 입력하세요: ");
String name = sc.nextLine();
System.out.print((i + 1) + "번째 친구 나이를 입력하세요: ");
int age = sc.nextInt();
sc.nextLine(); // 버퍼 비우기
System.out.print((i + 1) + "번째 친구 성별을 입력하세요: ");
String gender = sc.nextLine();
friends[i] = new Person(name, age, gender); // 객체 생성 후 배열에 저장
}
sc.close();
System.out.println("\n--- 입력한 친구 목록 ---");
for (Person friend : friends) {
friend.print();
}
}
}
이름: 민수, 나이: 15, 성별: 남
이름: 철수, 나이: 19, 성별: 남
이름: 영희, 나이: 15, 성별: 여
이름: 윤서, 나이: 18, 성별: 여
이름: 가영, 나이: 21, 성별: 여
--- 새로운 친구 추가 ---
1번째 친구 이름을 입력하세요: 민수
1번째 친구 나이를 입력하세요: 19
1번째 친구 성별을 입력하세요: 남
2번째 친구 이름을 입력하세요: 진
2번째 친구 나이를 입력하세요: 33
2번째 친구 성별을 입력하세요: 남
3번째 친구 이름을 입력하세요: 영희
3번째 친구 나이를 입력하세요: 15
3번째 친구 성별을 입력하세요: 여
4번째 친구 이름을 입력하세요: 수진
4번째 친구 나이를 입력하세요: 22
4번째 친구 성별을 입력하세요: 여
5번째 친구 이름을 입력하세요: 보미
5번째 친구 나이를 입력하세요: 25
5번째 친구 성별을 입력하세요: 여
--- 입력한 친구 목록 ---
이름: 민수, 나이: 19, 성별: 남
이름: 진, 나이: 33, 성별: 남
이름: 영희, 나이: 15, 성별: 여
이름: 수진, 나이: 22, 성별: 여
이름: 보미, 나이: 25, 성별: 여
package Class;
import java.util.Scanner;
/*
1.클래스를 생성할 수 있다.
2.생성된 클래스를 가져다 객체생성할 수 있다
3.생성된 객체를 배열에 저장할 수 있다.
4.배열 속에 있는 객체의 필드와 메서드에 접근할 수 있다.
5.관리프로그램의 프로세스를 이해하여 구현할 수 있다.
*/
public class Goods관리프로그램 {
public static void main(String[] args) {
/*
.배열을 준비한다
.스캐너를 준비한다
while() {
. 메뉴 1.제품수 | 2.제품내역등록 | 3. 등록된제품리스트 | 4. 종료
. 메뉴선택
switch(){
case 1:
등록할 제품수를 입력해주세요
배열의 방개수를 지정하여 생성
case 2:
제품을 등록합니다
제품명>>
제품가격>>
재고량>>
판매량>>
case 3:
등록된 제품내역을 전체조회합니다.
case 4:
종료합니다.
}
프로그램을 종료합니다
}
*/
Scanner sc = new Scanner(System.in);
Goods[] goodsArray = null; // 상품 배열
int productCount = 0; // 상품 개수 저장 변수
while (true) {
System.out.println("\n--- 메뉴 ---");
System.out.println("1. 제품 수 설정");
System.out.println("2. 제품 내역 등록");
System.out.println("3. 등록된 제품 리스트");
System.out.println("4. 종료");
System.out.print("메뉴를 선택하세요: ");
int choice = sc.nextInt();
sc.nextLine(); // 버퍼 비우기
switch (choice) {
case 1:
// 제품 수 설정
System.out.print("등록할 제품 수를 입력해주세요: ");
productCount = sc.nextInt();
sc.nextLine(); // 버퍼 비우기
goodsArray = new Goods[productCount];
System.out.println("제품 수가 " + productCount + "개로 설정되었습니다.");
break;
case 2:
// 제품 내역 등록
if (goodsArray == null) {
System.out.println("먼저 제품 수를 설정해주세요.");
break;
}
for (int i = 0; i < goodsArray.length; i++) {
System.out.println((i + 1) + "번째 제품 등록");
System.out.print("제품명: ");
String name = sc.nextLine();
System.out.print("제품가격: ");
int price = sc.nextInt();
System.out.print("재고량: ");
int stock = sc.nextInt();
System.out.print("판매량: ");
int sold = sc.nextInt();
sc.nextLine(); // 버퍼 비우기
goodsArray[i] = new Goods(name, price, stock, sold);
}
System.out.println("모든 제품이 등록되었습니다.");
break;
case 3:
// 등록된 제품 리스트
if (goodsArray == null || goodsArray[0] == null) {
System.out.println("등록된 제품이 없습니다.");
break;
}
System.out.println("\n--- 등록된 제품 리스트 ---");
for (Goods goods : goodsArray) {
if (goods != null) {
goods.printGoodsInfo();
}
}
break;
case 4:
// 종료
System.out.println("프로그램을 종료합니다.");
sc.close();
System.exit(0);
break;
default:
System.out.println("올바른 메뉴를 선택해주세요.");
}
}
}
}
package Class;
// 상품 클래스
public class Goods {
String name; // 제품명
int price; // 제품 가격
int stock; // 재고량
int sold; // 판매량
// 생성자
Goods(String name, int price, int stock, int sold) {
this.name = name;
this.price = price;
this.stock = stock;
this.sold = sold;
}
// 제품 정보 출력
void printGoodsInfo() {
System.out.println("제품명: " + name + ", 가격: " + price +
", 재고량: " + stock + ", 판매량: " + sold);
}
}
--- 메뉴 ---
1. 제품 수 설정
2. 제품 내역 등록
3. 등록된 제품 리스트
4. 종료
메뉴를 선택하세요: 1
등록할 제품 수를 입력해주세요: 3
제품 수가 3개로 설정되었습니다.
--- 메뉴 ---
1. 제품 수 설정
2. 제품 내역 등록
3. 등록된 제품 리스트
4. 종료
메뉴를 선택하세요: 2
1번째 제품 등록
제품명: 냉장고
제품가격: 300000
재고량: 3
판매량: 2
2번째 제품 등록
제품명: 모니터
제품가격: 200000
재고량: 5
판매량: 1
3번째 제품 등록
제품명: 카메라
제품가격: 210000
재고량: 3
판매량: 1
모든 제품이 등록되었습니다.
--- 메뉴 ---
1. 제품 수 설정
2. 제품 내역 등록
3. 등록된 제품 리스트
4. 종료
메뉴를 선택하세요: 3
--- 등록된 제품 리스트 ---
제품명: 냉장고, 가격: 300000, 재고량: 3, 판매량: 2
제품명: 모니터, 가격: 200000, 재고량: 5, 판매량: 1
제품명: 카메라, 가격: 210000, 재고량: 3, 판매량: 1
--- 메뉴 ---
1. 제품 수 설정
2. 제품 내역 등록
3. 등록된 제품 리스트
4. 종료
메뉴를 선택하세요: 4
프로그램을 종료합니다.
package Class;
import java.util.Scanner;
//사칙연산 클래스
class Cal {
// 덧셈 메서드
int add(int a, int b) {
return a + b;
}
// 뺄셈 메서드
int sub(int a, int b) {
return a - b;
}
// 곱셈 메서드
int mul(int a, int b) {
return a * b;
}
// 나눗셈 메서드
double div(int a, int b) {
if (b == 0) { // 0으로 나눌 경우 예외 처리
System.out.println("오류: 0으로 나눌 수 없습니다.");
return Double.NaN; // Not a Number 반환
}
return (double) a / b;
}
}
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Cal calculator = new Cal(); // 객체 생성
//두수를 입력받는다
System.out.println("첫번째 숫자를 입력하세요 >>");
int a = sc.nextInt();
System.out.println("두번째 숫자를 입력하세요 >>");
int b = sc.nextInt();
// Cal의 메소드를 이용해서 사칙연산
int sum = calculator.add(a, b);
int difference = calculator.sub(a, b);
int product = calculator.mul(a, b);
double quotient = calculator.div(a, b);
// 결과 출력
System.out.println("\n--- 사칙연산 결과 ---");
System.out.println("덧셈 결과: " + sum);
System.out.println("뺄셈 결과: " + difference);
System.out.println("곱셈 결과: " + product);
if (!Double.isNaN(quotient)) {
System.out.println("나눗셈 결과: " + quotient);
}
sc.close();
}
}
첫번째 숫자를 입력하세요 >>
9
두번째 숫자를 입력하세요 >>
3
--- 사칙연산 결과 ---
덧셈 결과: 12
뺄셈 결과: 6
곱셈 결과: 27
나눗셈 결과: 3.0
package 상속;
public class Person {
void 말하기( ) {
System.out.println("말하기");
}
void 먹기() {
System.out.println("먹기");
}
void 걷기() {
System.out.println("걷기");
}
void 잠자기() {
System.out.println("잠자기");
}
}
package 상속;
public class Professor {
void 가르치기() {
System.out.println("가르치기");
}
}
package 상속;
public class Student extends Person {
void 공부하기() {
System.out.println("공부하기");
/*
말하기();
먹기();
걷기();
잠자기();
*/
}
}
package 상속;
public class StudentWorker extends Student {
void 일하기() {
System.out.println("일하기");
}
}
package 상속;
public class PersonEx {
public static void main(String[] args) {
//student
Student student = new Student();
student.걷기();
student.공부하기();
student.말하기();
student.먹기();
student.잠자기();
}
}
package 상속;
class A{
A(){
System.out.println("생성자A");
}A(int x){
System.out.println("생성자A - 매개변수 있음");
}
}
class B extends A{
B(){
System.out.println("생성자B");
}B(int x){
System.out.println("생성자B - 매개변수 있음");
}
}
class C extends B{
C(){
this(100);
System.out.println("생성자C");
}C(int x){
System.out.println("생성자C - 매개변수 있음");
}
}
public class Ext1_생성자우선순위 {
public static void main(String[] args) {
C c1 = new C();
}
}
생성자A
생성자B
생성자C - 매개변수 있음
생성자C
package 상속;
class A{
A(){
System.out.println("생성자A");
}A(int x){
System.out.println("생성자A - 매개변수 있음");
}
}
class B extends A{
//필드
int a = 10;
int b = 100;
B(){
System.out.println("생성자B");
}B(int x){
System.out.println("생성자B - 매개변수 있음");
}
// 부모의 메서드
void print () {
System.out.println("나는 부모의 메소드야");
}
}
class C extends B{
int a = 5;
C(){
this(100);
System.out.println("생성자C");
}C(int x){
System.out.println("생성자C - 매개변수 있음");
}
//메서드
void print() {
System.out.println("나의 필드 a값 : " +this.a); //나의 거 : this
System.out.println("부모의 필드 a값: "+super.a); //부모 : super ,부모의 필드호출
super.print(); // 부모의 메소드 호출
}
void speaker() {
System.out.println("**************");
System.out.println("나는 speaker야");
this.print();
}
}
public class Ext1_생성자우선순위 {
public static void main(String[] args) {
C c1 = new C(); //생성자 우선순위
c1.print(); //부모의 필드와 메소드를 활용
c1.speaker();
}
}
생성자A
생성자B
생성자C - 매개변수 있음
생성자C
나의 필드 a값 : 5
부모의 필드 a값: 10
나는 부모의 메소드야
**************
나는 speaker야
나의 필드 a값 : 5
부모의 필드 a값: 10
나는 부모의 메소드야
package 상속;
class Human {
String name;
String id;
Human(String name){
this.name = name;
}
void print() {
System.out.println("부모클래스의 print메소드");
}
}
class Student1 extends Human{
String grade;
Student1( String name) {
super(name); // 부모의 생성자에 값을 넘겨줘서 초기화
}
void speaker() {
System.out.println("자식클래스의 print메소드");
}
}
public class Ext2_업캐스팅다운캐스팅 {
public static void main(String[] args) {
//객체생성
Student1 st = new Student1("홍길동");
st.print(); //부모메서드
st.speaker(); // 자식메서드
//부모타입으로 형변환 - 업캐스팅
Human p;
Student1 st2 = new Student1("김길동");
p = st2; // 업캐스팅
//다른방식 업캐스팅 - 업캐스팅을 하면 자식것에 접근할 수 없다.
// 부모 = 자식
Human p2 = new Student1("강감찬");
p2.print(); //부모
//p2.speaker() //자식
//다운캐스팅
Student1 st3 = (Student1)p2;
st3.print(); //부모
st3.speaker(); //자식
}
}
부모클래스의 print메소드
자식클래스의 print메소드
부모클래스의 print메소드
부모클래스의 print메소드
자식클래스의 print메소드
LIST
'휴먼 IT 교육 수업 메모' 카테고리의 다른 글
[휴먼IT] 수업 7일차 메모 (컬렉션) 250110 (0) | 2025.01.10 |
---|---|
[휴먼IT] 휴먼IT 자바 수업 6일차 메모 (상속) 250109 (1) | 2025.01.09 |
[휴먼IT] 휴먼IT 자바 수업 4일차 메모 (예외처리,클래스와 객체) - 250107 (1) | 2025.01.07 |
[휴먼IT] 자바 수업 3일차 메모 (반복문,배열) (0) | 2025.01.06 |
[휴먼IT] JAVA 수업 2일차 메모 (250103) (0) | 2025.01.03 |