202401to07
  • 2024.01.04.목.day5
    2024년 01월 04일 09시 42분 44초에 업로드 된 글입니다.
    작성자: 202401to07

    복습
    메소드 정의 -자주 사용되는 기능을  main에서 분리 (구조화 및 재사용)
    메소드의 인자 매게변수란, 메소드 실행에 필요한 입력값 다

          인자란, argument : 둘 사이의 값을 연결시킨다 

                                      메소드 호출시 입력값을 메소드 정의한 실행부분으로 연결시켜준다

           매게변수란, 선언된 변수 그 자체.

    메소드의 리턴이란
    매소드는 static메소드와 인스턴스 메소드로 분류한다 
    static 메소드 : 클래스의 이름으로 직접실행 ex) Character.isUppercase(c)
    인스턴스 메소드 : 객체를 만들어서 메소드를 호출  ex) message.length()

     

     

    partA 끝내고 partB만들기 

     

     

    getter setter : private인 메소드를 다른 클래스에서 읽거나 저장하기 위해 존재 

    public int getField2(){     //2. private int field2;
            return field2;
        }
    public void setField2(int f2){      //2. private int field2;
            field2 = f2;
    MyClass2 momo = new MyClass2();
                System.out.println("myclass2 field1 값 변경 전 "+momo.getField1());

     

     public void setField3(double[] f3){ //3. private double[] field3;
            //field3 = f3;    
            //참조값을 대입시키닙니다. 객체가 의도하지 않아도 쉽게 field3 배열값이 변경됩니다
            field3 = new double[f3.length]; //배열을 새로 생성하기
            for (int i = 0 ; i <f3.length;i++)  //f3배열의 값을 복사하기
                field3[i] = f3[i];

    위에 이 부분은 왜 한건데 

     

    오늘의 새로운 내용 

    1. 객체를 만들었다 . 000 000 = new 0000 

    2. 객체는 인스턴스 필드와 인스턴스 메소드를 갖고 있으며 이것들은 객체가 주인되어 실행되어야 한다 

    ex) momo가 객체 일때 momo.getField1() 에서getField()는 인스턴스 메소드이다.

    3.객체의 인스턴스 필드는 proivate으로 접근을 제한하는것이 객체지향의 특징이다 

    -> 읽거나 저장하기  위해선 : get***메소드, set***메소드를 만들기 

    4.인스턴스 필드가 참조변수일때는 주소의 개념을 꼭 먼저 생각하기 

    ->getter, setter메소드의 인자와 리턴값이 주소가 된다 

    ex) 

     

     

    오늘의 과제 
    :

    package object.day5;
    
    import java.util.Arrays;
    
    
            //MyClass2 보고 따라함
           
    public class HWScore {
    
        //학생들의 성적을 객체로 만들어줄 클래스 - 객체를 만든다- 인스턴스 -private
        public class Score{
    
            // 변수 선언
            private String name;
            private int grade;
            private int[] jumsues;
    
            //getter
    
            public String getName(){  
    
                return name;    
            }
            public int getGrade(){    
                return grade;
            }
            public int[] getJumsues(){    
                return jumsues;            
            }
       
            //setter
    
            public void setName(String n){  
    
                name = n ;    
            }
            public void setGrade(int g){    
                grade = g;
            }
            public void setJumsues(int[] j){    
                jumsues = new int[j.length];
                for (int i = 0; i < j.length ; i ++)
                    jumsues[i] = j[i];            
            }
    
            //모든 인스턴스 필드를 확인하는 printScore() 메소드
            public void printScore(){
            System.out.println("name = " + name + " grade= " + grade +
            " jumsues= " + jumsues + Arrays.toString(jumsues));
            }
    
            // 성적 합계
            public int Sum() {          //메소드 이름이 Sum인거야
                int sum = 0;
                for (int k : jumsues) {              
                    /*  : 는 in같은 의미이다
                     *  int[] momosetGrade = {10,20,30};      
                     *  momo.setJumsues(momosetGrade);  
                     *  위의 코드에서 받은 점수값을 객체에 jumsues에 저장했다
                     *
                    */
                   
                    sum += k;                        
                }
                return sum;
            }
    
            //성적 평균
            public double Average() {   //메소드 이름이 Average인거야
                int sum = Sum();
                return (double) sum / jumsues.length;       //평균은 합계나누기 과목수
            }                                               //과목수는 점수의 갯수이지
    
             /* Array.stream 을 사용하면 아래의 코드처럼 간단해진다
            하지만 배우지 않았으니 메소드를 만드는 방법을 사용한다
    
            // 각 학생의 성적 합계를 계산하는 메소드
            public int sum() {
                return Arrays.stream(jumsues).sum();
                //Arrays.stream
            }
    
            // 각 학생의 성적 평균을 계산하는 메소드
            public double average() {
                return Arrays.stream(jumsues).average().orElse(0.0);
            }
            */      
    
        }
    }
    package object.day5;
    
    public class B03ScoreMain {
    
    
        //Score를 실행할 파일
    
       
        public static void main(String[] args) {
         
    
            // 학생 4명의 성적을 저장해보세요
            // 1학년 2명 : 모모momo, 다현dah   -> 3과목
            // 2학년 2명 : 나연nah, 쯔위ggw -> 4과목
            // 점수는 너가 정해
            HWScore sc = new HWScore();             //HWScoe에서 내가 만든거 쓰려고
    
            HWScore.Score momo = sc.new Score();    //HWscore 클래스 안에 Score클래스 있어
            momo.setName("모모");                 //이름
            momo.setGrade(1);                    //학년
            int[] momosetGrade = {10,20,30};       //    점수 배열 넣어
            momo.setJumsues(momosetGrade);          //점수
    
            HWScore.Score dah = sc.new Score();
            dah.setName("다현");                 //이름
            dah.setGrade(1);                    //학년
            int[] dahsetGrade = {40,50,60};       //    점수 배열 넣어
            dah.setJumsues(dahsetGrade);          //점수
    
    
            HWScore.Score nah = sc.new Score();
            nah.setName("나연");                 //이름
            nah.setGrade(2);                    //학년
            int[] nahsetGrade = {70,80,90,100};   //    점수 배열 넣어
            nah.setJumsues(nahsetGrade);          //점수
    
            HWScore.Score ggw = sc.new Score();
            ggw.setName("쯔위");                 //이름
            ggw.setGrade(2);                    //학년
            int[] ggwsetGrade = {110,120,130,140};//    점수 배열 넣어
            ggw.setJumsues(ggwsetGrade);          //점수
    
            //모든 인스턴스를 확인하는 과정
            momo.printScore();
            dah.printScore();
            nah.printScore();
            ggw.printScore();
    
            System.out.println("모모 점수 총합계 : " + momo.Sum());
            System.out.println("모모 점수 평균 : " + momo.Average());
            System.out.println("\n다현 점수 합계 : " + dah.Sum());
            System.out.println("다현 점수 평균 : " + dah.Average());
            System.out.println("\n나연 점수 평균 : " + nah.Average());
            System.out.println("나연 점수 합계 : " + nah.Sum());
            System.out.println("\n쯔위 점수 평균 : " + ggw.Average());
            System.out.println("쯔위 점수 합계 : " + ggw.Sum());
           
        }
       
    }

     

    '보안' 카테고리의 다른 글

    2024.01.08.월.day7  (0) 2024.01.08
    2024.01.05.금.day6  (0) 2024.01.05
    2024.01.03.화.day4  (0) 2024.01.03
    2024.01.02.월.day3  (0) 2024.01.02
    2023.12.29.금.day.2  (0) 2023.12.29
    댓글