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 |