Java - Method
JAVA(자바), Python(파이썬) 기반의
AI 활용 응용 소프트웨어 개발자 양성 과정
찾으시는 정보가 있으시다면
주제별reference를 이용하시거나
우측 상단에 있는 검색기능을 이용해주세요
12일차 수업
========복습========
요구사항 : 사용자에게 학생의 과목 점수를 취합하여 개인별 과목 점수와 총점, 과목별 학생들의 합계를 구하는 프로그램을 만들어 주세요
Scanner sc = new Scanner(System.in);
System.out.println("성적 취합 프로그램입니다.");
System.out.println("학생의 수를 입력해주세요");
int student = sc.nextInt();
sc.nextLine();
System.out.println("과목의 수를 입력해주세요");
int subjectNum = sc.nextInt();
sc.nextLine();
String[] subject = new String [subjectNum];
for(int i = 0; i < subjectNum; i++) {
System.out.println((i+1) + "번째 과목을 입력해주세요");
String subjectName = sc.nextLine();
subject[i] = subjectName;
}
int[][] getScore = new int [student][subjectNum+1];
for(int i = 0; i < student; i++) {
int sum = 0;
System.out.println((i+1) + "번째 학생의 점수를 입력합니다.");
for(int j = 0; j < subjectNum; j++) {
System.out.println(subject[j] + " 점수를 입력해주세요");
int score = sc.nextInt();
sc.nextLine();
getScore[i][j] = score;
sum += score;
}
getScore[i][subjectNum] = sum;
}
for(int i = 0; i < student+2; i++) {
for(int j = 0; j < subjectNum+2; j++) {
if(i == 0 && j == 0) {
System.out.print("\t");
}else if(i == 0) {
if(j == subjectNum+1) {
System.out.println("총점");
}else{
System.out.print(subject[j-1] + "\t");
}
}else if(i == student+1) {
if(j == 0) {
System.out.print("합계" + "\t");
}else if(j == subjectNum+1) {
int totalsum = 0;
for(int k = 0; k < student; k++) {
totalsum += getScore[k][j-1];
}
System.out.println(totalsum);
}else {
int subsum = 0;
for(int k = 0; k < student; k++) {
subsum += getScore[k][j-1];
}
System.out.print(subsum + "\t");
}
}else {
if(j == 0) {
System.out.print(i + "번 \t");
}else {
if(j == subjectNum+1) {
System.out.println(getScore[i-1][j-1] + "\t");
}else {
System.out.print(getScore[i-1][j-1] + "\t");
}
}
}
}
}
======== 끝 ========
12일차 수업
절차지향 프로그래밍
상단에서 하단으로 작성
만약에 같은 코드가 필요하면 다시 작성
대표적인 언어 : C 언어
실행 순서가 정해져 있어서 코드의 순서가 바뀌면 결과가 달라진다
장점 : “순서” o “절차”가 컴퓨터의 처리 구조와 비슷해서 실행속도가 빠름
단점 : 개발할 때는 좋은데 수정할 때 어렵다
객체지향 프로그래밍
“객체”라는 것을 이용해서 프로그래밍을 하겠다
OOP(Object Orientied Programming)
대표적인 언어 : Java, Python
객체 : 코드의 블록(“{ }”로 감싸진 ( ex) for, if문 ), 열심히 생각해봐야하는 단어
블록마다 역할을 부여하고 설계하면
- 블록을 사용하여 알맞은 공간에 넣기도 하고, 모양도 변형할 수 있음
언어에서 지원하는 기능을 사용해야하기 때문에 “문법” 배워야함
“문법”을 이용해 “설계”까지 나아가는 것이 목표
캡슐화(부품화)
부품화하는 과정 : 문법
부품을 재조립하는 과정 : 설계
적당한 부품화가 제일 중요
메소드 : 연관된 부품끼리 사용하는 것들을 그룹핑(그룹화 한다)
부품은 내부코드를 몰라도 누구나 사용할 수 있어야함
인터페이스 : 서로 다른 부품이지만 연결할 때 만큼은 둘 다 호환이 되어야 한다
객체를 규격화, 표준화 한다
메소드
프로그래밍 할 때 가장 작은 단위(java 파일 내에서 실행되는 가장 작은 단위)
-
윈도우운영체제 > 폴더 > 파일 > 파일내용
-
자바프로젝트 > 패키지 > 클래스 > 메소드
메소드 안에서는 변수선언, 제어문 작성, 배열 작성 등 프로그래밍을 구현하는 문장들의 묶음
반복적으로 사용하기 위한 프로그래밍 : 메소드 단위 작성
문제가 발생하면 해당 메소드로 가서 유지보수
기능을 찾기 위해서 main 메소드 내부를 찾을 필요가 없어 가독성 상승
컴파일(실행)을 할 때 컴퓨터가 클래스 밑에 있는 모든 메소드를 가장 먼저 생성
구조
-
접근제어자 반환타입 메소드이름(매개변수) { }
-
접근제어자, 매개변수 생략가능
-
반환타입, 메소드이름 필수
-
-
public static void test(){ 코드 블록 }
-
선언부 : class { } 안에 작성하며, 다른 메소드 안에 작성하지 못한다
-
접근 제어자 : public
- 해당 메소드를 접근할 수 있는 범위(클래스, 패키지 등등)
-
반환타입 : void
-
메소드도 프로그램이기 때문에 실행, 종료가 있음
-
종료했을 때 반환되는 데이터의 타입
-
-
메소드 이름 : test
- 변수처럼 메소드를 호출할 때 사용
-
매개변수목록 : ( ) 괄호 안의 값
- 메소드가 호출 될 때 메소드에서 사용할 값의 변수들
-
{ } 중괄호로 마무리
- 구현하는 부분
-
호출하기
- 메소드 이름();
- public static void main{ }
-
클래스 안 메소드 중에 가장 먼저 실행되는 메소드
-
java 파일 내에 main 메소드가 없으면 실행하지 못함
-
main 안에서 호출해야 실행 가능
매개변수 : 메소드에서 사용할 변수, 파라미터
메소드 이름(argument(인자));
인자는 메소드에서도 정의가 되어있어야함
매개변수 : 인자로 넘어올 값을 함수 내에서 사용하기 위한 변수로 미리 선언 하는 값
자료형과 변수 이름 작성해주면 매개변수 준비완료
static void numbering(int limit){ code block };
-
매개변수가 2개 이상일 경우 각각 자료형과 변수명을 작성해주면 됨
-
각 매개변수간 구분은 쉼표(,)
-
인자와 매개변수의 작성순서, 개수, 데이터 타입은 동일해야함