본 게시글은 유튜브 : 경제 TV 너무경 : 너무 쉬운 경제 윤성종 님의 유튜브 영상을 참고하였습니다. 개인적으로 정리하는 글임을 알립니다.
금융용어정리 - 소득 공제, 과세 표준, 세율, 세액
세액을 공제할 때, 소득에 세율을 곱해서 세액을 산출하는 것이 아니라 과세 표준에 세율을 곱해서 세액을 구한다.
소득공제
소득 공제는 소득액을 산출하기 위해 총소득액에서 법으로 정해진 금액을 빼는 것을 말한다.
소득 공제에는 기초 공제, 부양가족 공제, 의료비 공제 등이 있다 A와 B씨는 둘 다 연 소득이 3000만 원이라고 하면, 생활을 하는데 기본적으로 필요한 돈이 있을 것이다. 이러한 기본적으로 필요한 돈을 소득액에서 빼주는 것을 기초 공제라고 한다. A씨는 혼자 살고, B씨는 부양하는 가족이 있는데 A, B 씨 모두 같은 세액을 부과하면 부당할 것이다. 그래서 그 만큼의 돈을 소득액에서 빼주는 것을 부양가족 공제라고 한다. A, B 씨 모두 의료비로 지출한 돈이 있을 것이다. 이러한 의료비에 필요한 돈은 소득액에서 빼주는 것을 의료비 공제라고 한다.
static int max(int a, int b, int c)
{
int max = a;
if(b>max)max=b;
if(c>max)max=c;
return max;
}
중앙값
static int mid(int a, int b, int c)
{
if(a > b)
{
if(b > c)return b;
else if(a > c)return c;
else return a;
}
else if(a>c)return a;
else if(b>c)return c;
else return b;
}
최솟값
static int min(int a, int b, int c)
{
int min = a;
if(min>b)min=b;
if(min>c)min=c;
return min;
}
종합
import java.util.Scanner;
public class Test {
static int max(int a, int b, int c)
{
int max = a;
if(b>max)max=b;
if(c>max)max=c;
return max;
}
static int mid(int a, int b, int c)
{
if(a > b)
{
if(b > c)return b;
else if(a > c)return c;
else return a;
}
else if(a>c)return a;
else if(b>c)return c;
else return b;
}
static int min(int a, int b, int c)
{
int min = a;
if(min>b)min=b;
if(min>c)min=c;
return min;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("정수 3개를 입력하세요");
int []arr = new int[3];
for(int i = 0; i < 3; ++i)
{
arr[i]=sc.nextInt();
}
System.out.print("최댓값 : "+max(arr[0],arr[1],arr[2])+",");
System.out.print("중앙값 : "+mid(arr[0],arr[1],arr[2])+",");
System.out.print("최솟값 : "+min(arr[0],arr[1],arr[2]));
}
}
/*
정수 3개를 입력하세요
546876 1567544 125
최댓값 : 1567544,중앙값 : 546876,최솟값 : 125
*/
입력 변수 4개, 최댓값, 최솟값
최댓값
static int max(int a, int b, int c, int d)
{
int max = a;
if(max<b) max = b;
if(max<c) max = c;
if(max<d) max = d;
return max;
}
최솟값
static int min(int a, int b, int c, int d)
{
int min = a;
if(min>b) min = b;
if(min>c) min = c;
if(min>d) min = d;
return min;
}
종합
import java.util.Scanner;
public class Test{
static int max(int a, int b, int c, int d)
{
int max = a;
if(max<b) max = b;
if(max<c) max = c;
if(max<d) max = d;
return max;
}
static int min(int a, int b, int c, int d)
{
int min = a;
if(min>b) min = b;
if(min>c) min = c;
if(min>d) min = d;
return min;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("정수 4개를 입력하세요");
int []arr = new int[4];
for(int i = 0; i < 4; ++i)
{
arr[i]=sc.nextInt();
}
System.out.print("최댓값 : "+max(arr[0],arr[1],arr[2],arr[3])+",");
System.out.print("최솟값 : "+min(arr[0],arr[1],arr[2],arr[3]));
}
}
/*
정수 4개를 입력하세요
54654 132 654 98321
최댓값 : 98321,최솟값 : 132
*/
기타
static int mid(int a, int b, int c)
{
if(a > b)
{
if(b > c)return b;
else if(a > c)return c;
else return a;
}
else if(a>c)return a;
else if(b>c)return c;
else return b;
}
static int mid(int a, int b, int c)
{
if((b>=a && c<=a)||(b<=a && c>=a)) return a;
else if((a>=b && c<=b)||(a<=b && c>=b)) return b;
return c;
}
첫 번째 코드와 두 번째 코드는 동일한 기능을 수행한다.
하지만 첫 번째 코드가 더 효율적이다.
두 번째 코드의 (b>=a && c<=a)||(b<=a && c>=a) 에서 b>=a 와 b<= a는 실질적으로 같은 코드이다.
왜냐하면 "a와 b중 둘 중에 뭐가 더 크냐"라고 물어보는 본질은 같기 때문이다.
또한 다음줄에 나오는 else if((a>=b && c<=b)||(a<=b && c>=b)) 에서도 b>=a 와 b<= a는 실질적으로 같은 코드이다.
현실 세계에서 어떤 제품을 만들 때 부품을 먼저 개발하고 이 부품들을 하나씩 조립해서 제품을 완성하듯이 소프트웨어를 개발할 때에도 부품에 해당하는 객체를 먼저 만든다. 그리고 객체를 하나씩 조립해서 완성된 프로그램을 만드는 기법을 객체 지향 프로그래밍(OOP : Obeject Orented Programming)이라고 한다.
객체는 속성과 동작으로 구성되어 있다.
예를 들어 사람 객체의 속성으로는 이름, 나이 등이 있고, 동작으로는 걷기, 말하기, 먹기 등이 있다.
자바는 이 속성과 동작을 각각 필드와 메소드라고 부른다.
현실 세계의 객체를 소프트웨어 객체로 설계하는 것을 객체 모델링이라고 한다.
객체의 상호작용
현실 세계에서 사람(객체)이 계산기(객체)를 이용하는 것과 같이, 소프트웨어에서도 객체는 각각 독립적으로 전재하고, 다른 객체와 서로 상호작용을 하면서 동작한다.
객체들 사이의 상호작용 수단은 메소드이다. 이때 객체가 다른 객체의 기능을 이용하는 것이 메소드 호출이다.
객체 간의 관계
객체는 개별적으로 사용될 수 있지만, 대부분 다른 객체와 관계를 맺고 있다.
이 관계의 종류에는 집합관계, 사용관계, 상속관계가 있다.
집합 관계에 있는 객체는 하나는 부품이고 하나는 완성품에 해당
사용 관계는 객체 간의 상호작용을 말함
상속 관계는 상위(부모)객체를 기반으로 하위(자식)객체를 생성하는 관계를 말함.
객체와 클래스
건물을 마구잡이로 짓지는 않는다. 설계도에 의해서 건물이 완성된다.
자바에서 설계도가 클래스이다. 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있고, 클래스로 부터 만들어진 객체를 해당 클래스의 인스턴스라고 한다.
int[][] scores = {{95,80},{92,96}}; //값 목록을 이용한 2행 2열 배열 생성
객체를 참조하는 배열
기본 타입(byte, int등등) 배열은 각 항목에 직접 값을 갖고 있지만, 참조타입(클래스, 인터페이스) 배열은 각 항목에 객체의 번지를 가지고 있다. 예를 들어 String은 클래스이므로 String[]배열은 각 항목에 문자열이 아니라, String 객체의 번지를 가지고 있다. 즉 String[] 배열은 String 객체를 참조하게 된다.