본문 바로가기
Java/Java 인강

Java 인강 필기 5

by code2772 2022. 10. 2.

[ 목차 ]

    728x90
    반응형
    (22.7.30)
    
    # 17강 메서드
    
    ​
    
    메서드란 - 여러 명령들의 나열된 묶음 입력 값을 받아서 내부에서 처리 후
    
    결과를 출력 반환하는 역할, 클래스 내부에서 생성
    
    ​
    
    메서드의 사용목적
    
    ​
    
    메서드의 사용
    
    ​
    
    매개변수 - 함수의 호출부에서 구현부로 전달할 값을 저장할 공간
    
    ​
    
    return 값 - 함수에 구현된 모든 명령 실행 후, 함수가 갖게 될 결과 값
    
    ​
    
    void ->리턴값이 존재하지 않을 때
    
    ​
    
    package day17;
    
    ​
    
    public class Day17_1 {
    
    ​
    
    public static void main(String[] args) {
    
    open();
    
    f1(100);
    
    }
    
    static void open() {
    
    static int f1(int x) {
    
    System.out.println("x : "+x);
    
    }
    
    }
    
    ​
    
    }
    
    ​
    
    package day17;
    
    ​
    
    public class Day17_2 {
    
    ​
    
    public static void main(String[] args) {
    
    System.out.println(f());
    
    }
    
    static int f() {
    
    System.out.println("f() 호출!");
    
    return 100;
    
    ​
    
    }
    
    }
    
    ​
    
    package day17;
    
    ​
    
    public class Day17_3 {
    
    ​
    
    public static void main(String[] args) {
    
    System.out.println("사각형 넓이"+calculator(10,20));
    
    }
    
    static int calculator(int a, int b) {//a.b에 가각10, 20들어감
    
    int area = a*b;
    
    return area;
    
    }
    
    ​
    
    }
    
    ​
    
    ​
    
    # 18강 메서드 오버로딩
    
    ​
    
    오버로딩은 매개변수의 개수와 타입은 다르지만 이름이 같은 메서드를
    
    여러 개 정의하는 것
    
    ​
    
    - 오버로딩(중복 정의) : 메서드 중복정의 // 로딩(메모리 적재)
    
    - 일반적으로 메서드 사용시, 메서드명을 구분하여 사용
    
    - 하지만, 같은 기능을 갖고 있는 메서드라면, 매번 이름 정의하는 것이 불필요
    
    ​
    
    package day18;
    
    ​
    
    public class Day1801 {
    
    ​
    
    public static void main(String[] args) {
    
    sum(10,20);
    
    sum_double(1.23,3.12);
    
    sum(10,20,30);
    
    }
    
    //메서드의 매개변수 타입에 변화
    
    static void sum(int x,int y) {
    
    System.out.println(x+y);
    
    }
    
    static void sum_double(double x,double y) {
    
    System.out.println(x+y);
    
    }
    
    //메서드의 매개변수 타입에 변환
    
    static void sum(int x,int y, int z) {
    
    System.out.println(x+y+z);
    
    }
    
    }
    
    ​
    
    package day18;
    
    //두수를 전달받아 사칙연산 (단 정수, 실수 모두 가능)
    
    public class Day1802 {
    
    ​
    
    public static void main(String[] args) {
    
    ​
    
    System.out.println(+sum(10,20));
    
    System.out.println(+sub(10,20));
    
    System.out.println(+mul(10,20));
    
    System.out.println(+div(10,20));//정수형
    
    }
    
    ​
    
    //정수형 - 실수 모두 같은 방식으로 처리하면 문제없다.
    
    static int sum(int x, int y) {
    
    return x+y;
    
    }
    
    static int sub(int x, int y) {
    
    return x-y;
    
    }
    
    static int mul(int x, int y) {
    
    return x*y;
    
    }
    
    static int div(int x, int y) {//정수형
    
    return x/y;
    
    }
    
    }
    
    ​
    
    ​
    
    # 19강 객체지향 언어
    
    ​
    
    객체지향 언어
    
    객체지향 언어란, 현실에서 존재하는 사물과 개념들을 소프트웨어적으로 구현하고,
    
    그 구현된 객체들이 상호작용하여 데이터를 처리하는 방식
    
    ​
    
    //객체 - 독립적으로 존재할 수 있는 것
    
    EX) 고양이, 강아지
    
    EX) 고양이 꼬리, 강아지 꼬리 - > 혼자 존재 가능한가? 불가능!
    
    ​
    
    객체지향 언어 목적 - 코드의 재사용!
    
    - 코드를 객체화 하여 독립적으로 존재할 수 있도록
    
    ​
    
    //절차지향 언어 - 명령을 순서대로 처리하는 방식
    
    ​
    
    객체지향 언어 특징
    
    ​
    
    - 추상화 - 공통적인 특징을 모아 놓은 것
    
    ​
    
    - 상속 - 부모의 것을 자식이 받아오는 것
    
    ​
    
    - 캡슐화 - 사용하는 사람은 기능만 알면 된다. 안에 무엇이 있는지 알 필요 없다.
    
    ​
    
    - 다형성 - 같은 모양을 갖고 있으나 다른 의미를 갖고 있는 것
    
    // 오버로딩 - 함수의 중복정의, 오버라이딩 - 함수의 재정의
    
    ​
    
    ​
    
    ​
    
    # 20강 클래스에 대하여 - 클래스와 객체
    
    ​
    
    클래스란 - 객체를 만들기 위한 설계도
    
    ​
    
    인스턴스 - 클래스를 통해 만들어진 형태 -> 객체를 만드는 과정
    
    ​
    
    클래스의 사용
    
    클래스로 객체 값을 만즐 메모리를 할당, 객체 값을 생성 후 변수에 저장
    
    ​
    
    참조변수 - 주소를 저장하는 변수
    
    ​
    
    ​
    
    클래스로 여러 객체 만들기
    
    -클래스는 객체를 만드는 틀이므로, 여러 개의 값을 만들 수 있다.
    
    ​
    
    package day20;
    
    ​
    
    public class Day2001 {
    
    ​
    
    public static void main(String[] args) {
    
    //변수 = 객체값
    
    //클래스명 참조변수 = new 클래스명();
    
    ClassA ca = new ClassA();
    
    System.out.println(ca.x);
    
    ca.f1();
    
    ​
    
    ca.x=30;
    
    System.out.println(ca.x);
    
    ​
    
    }
    
    ​
    
    }
    
    ​
    
    class ClassA{
    
    //메인이 없는
    
    int x = 10;
    
    void f1() {
    
    System.out.println("f1()");
    
    ​
    
    }
    
    ​
    
    }
    
    ​
    
    ​
    
    package day20;
    
    ​
    
    public class Day2002 {
    
    ​
    
    public static void main(String[] args) {
    
    Car mycar=new Car();
    
    System.out.println("시동 처음 초기화"+mycar.powerOn);
    
    System.out.println("시동 처음 초기화"+mycar.powerOn);
    
    System.out.println("시동 처음 초기화"+mycar.powerOn);
    
    System.out.println("시동 처음 초기화"+mycar.powerOn);
    
    System.out.println("시동 처음 초기화"+mycar.powerOn);
    
    ​
    
    mycar.power();
    
    System.out.println();
    
    }
    
    ​
    
    class Car{
    
    boolean powerOn;
    
    String color;
    
    int wheel;
    
    int speed;
    
    boolean wiperOn;
    
    ​
    
    void power() {
    
    powerOn=!powerOn;
    
    }
    
    void speedUp() {
    
    speed++;
    
    }
    
    void speedDown() {
    
    speed--;
    
    }
    
    void wiper() {
    
    wiperOn=!wiperOn;
    
    }
    
    ​
    
    }
    
    ​
    
    }
    반응형

    'Java > Java 인강' 카테고리의 다른 글

    Java 인강 필기 7  (0) 2022.10.02
    Java 인강 필기 6  (0) 2022.10.02
    Java 인강 필기 4  (0) 2022.10.02
    Java 인강 필기 3  (0) 2022.10.02
    Java 인강 필기 2  (0) 2022.10.02