클래스란 객체 생성을 위한 설계도이다.
클래스가 가장 중요한 개념 중 하나인 이유는
자바는 객체지향 프로그래밍 언어이기 때문이다.
객체지향 프로그래밍이란
현실에서 제품을 생산하기 위한 부품들을 만들어 하나씩 조립해서 완성하는 것 처럼
소프트웨어 또한 필요한 부품들을 만들고, 하나씩 조립해서 프로그램을 완성할 수 있는 기법이다.
소프트웨어에서 필요한 부품을 '객체'라고 표현하며
객체(Object)의 뜻은 다음과 같이 정의할 수 있다.
- 실제로 존재하는 것. 사물 또는 개념
- 클래스에 정의된 내용대로 메모리에 생성된 것
필요한 부품을 만들기 위해서는 설계도가 필요한데,
그 설계도의 역할을 하는 것이 클래스이다.
클래스는 필드(field), 생성자(constructor), 메서드(method)로 구성되며
클래스를 만드는 방법은 크게 4가지 STEP으로 이루어진다.
객체의 데이터를 저장하는 역할
예시코드)
public class Car {
String company; //자동차 회사
String modal; //자동차 모델
String color; //자동차 색
double price; //자동차 가격
double speed; //자동차 속도, km/h
char gear; //기어 상태 (P, R, N, D)
boolean lights; //자동차 조명의 상태
}
객체를 초기화 하는 역할
예시코드)
public Car () {
}
처음 객체가 생성될 때 어떤 로직을 수행해야 하며,
어떤 값이 필수로 들어와야 하는지 정의한다.
(기본 생성자는 생략이 가능하다.)
특정 작업을 수행하기 위한 명령문의 집합
예시코드)
리턴타입 메서드명(매개변수, ...) {
실행할 코드 작성
}
double gasPedal(double kmh) {
speed = kmh;
return speed; //
}
알고리즘 문제 출처 : 프로그래머스 스쿨
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
if((-50000 <= num1 && num1 <= 50000) && (-50000 <= num2 && num2 <= 50000)) {
answer = num1 + num2;
return answer;
}
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
if((-50000 <= num1 && num1 <= 50000) && (-50000 <= num2 && num2 <= 50000)) {
answer = num1 - num2;
return answer;
}
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
if((-50000 <= num1 && num1 <= 50000) && (-50000 <= num2 && num2 <= 50000)) {
answer = num1 * num2;
return answer;
}
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
if((-100 <= num1 && num1 <= 100) && (-50000 <= 100 && num2 <= 100)) {
answer = num1 / num2;
return answer;
}
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer = 0;
if((-100 <= num1 && num1 <= 100) && (-100 <= num2 && num2 <= 100)) {
answer = num1 % num2;
return answer;
}
return answer;
}
}
class Solution {
public int solution(int age) {
int year = 2022;
int answer = 0;
if (0<age && age<=120) {
answer = (year-age) +1;
return answer;
}
return answer;
}
}
class Solution {
public int solution(int num1, int num2) {
int answer=0;
if((num1 >= 0 && num1<= 10000) && (num2 >= 0 && num1<= 10000)){
if ((num1 - num2) == 0) {
answer = 1;
return answer;
}
}
answer = -1;
return answer;
}
}
class Solution {
public int solution(int angle) {
int answer = 0;
if (0 < angle && angle <= 180) {
if (0 < angle && angle < 90) {
answer = 1;
} else if (angle == 90) {
answer = 2;
} else if (90 < angle && angle < 180) {
answer = 3;
} else if (angle == 180){
answer = 4;
}
return answer;
}
return answer;
}
}
class Solution {
public int solution(int n) {
int answer = 0;
if (n > 0 && n <= 1000 ) {
while (n > 0) {
if (n % 2 == 0) {
answer += n;
}
n--;
}
return answer;
}
return answer;
}
}
import java.util.Scanner;
class Solution {
public int solution(int num1, int num2) {
int answer = num1 + num2;
return answer;
}
}
public class Test1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
int num2 = sc.nextInt();
Solution inputInt = new Solution();
System.out.println(inputInt.solution(num1, num2));
}
}
아직 1일차 문제라 그런지, 다행히 크게 어려운 문제는 없었지만
너무 즐겁게 문제를 풀었다.
문제를 다 푼 후, 다른 사람들이 작성한 코드들의
많은 기발한 아이디어들과 깔끔한 코드 작성을 보는 것만으로도
좋은 참고가 되었다.
내일 문제 풀이는 조금 더 깔끔한 코드로 작성 할 수 있었으면 좋겠다!