자바 기본 방법 및 방법 재 업로드 상세 설명

참조 방법
1.1 참조 방법의 정의 와 호출
이전에 정 의 된 방법 은 대부분 무 참 방법 이지 만 일부 방법의 집행 은 전제조건 이 필요 하 다.그러면 매개 변 수 는 이러한 전제조건 을 전송 하 는 것 이다.
매개 변 수 를 정의 하 는 방법:
<액세스 수정자>반환 값 형식<방법 이름>(<형식 매개 변수 목록>){
//방법의 주체
}
파 라 메 터 를 호출 하 는 방법
대상 명.방법 명(매개 변수 1,매개 변수 2,매개 변수 3...매개 변수 n);
믹서 의 종 류 를 정의 하고 상세 한 정 보 를 출력 합 니 다.

package Kind.dh;

//      
public class MethodWithParameters {
    //  :     
    public String color;
    public double price;

    public void showInfo() {
        System.out.println("    " + color + "    ,   :" + price + " ");
    }

    //  :  -  :     -    (  ):         
    public void zhazhi(String fruit, int num) {
        System.out.println(num + " " + fruit + " ");
    }
}

package instance.dh;

import Kind.dh.MethodWithParameters;

import java.util.Scanner;

public class MethodWithParametersTest {
    public static void main(String[] args) {
        //    
        MethodWithParameters methodWithParameters = new MethodWithParameters();
        Scanner input = new Scanner(System.in);
        System.out.println("           :");
        methodWithParameters.color = input.next();
        System.out.println("           :");
        methodWithParameters.price = input.nextDouble();
        methodWithParameters.showInfo();
        System.out.println("        :");
        String shuiguo = input.next();
        System.out.println("        :");
        int num = input.nextInt();
        //       (  )
        methodWithParameters.zhazhi(shuiguo, num);
    }
}
1.2 참조 방법 사용 주의사항
방법 정의 처 의 매개 변 수 는 형식 매개 변수 라 고 하고 방법 호출 처 의 값 은 실제 매개 변수 이다.
매개 변수 개 수 는 하나 일 수도 있 고 여러 개 일 수도 있 으 며 여러 매개 변수 간 에 쉼표 로 구분 할 수 있 습 니 다.
매개 변수 이름 규칙 에 맞 게 매개 변수 이름 을 마음대로 지 을 수 있 습 니 다.
형 삼 과 실 삼 의 이름 은 다 를 수 있 지만 데이터 형식 은 반드시 일치 해 야 하고 순 서 는 같 아야 하 며 개 수 는 같 아야 한다.
방법 에 인자 가 있 는 지 없 는 지 방법 에 반환 값 이 있 는 지 없 는 지 는 연락 이 없습니다.
1.3 대 참 방법의 응용

package Kind.dh;

//             ,    、   、              
//        
public class Student02 {
    //  :         
    //         
    String[] names = new String[30];

    //1.       
    public void addName(String name) {
        //         ,            null     
        for (int i = 0; i < names.length; i++) {
            if (names[i] == null) {
                names[i] = name;
                break;//            
            }
        }
    }

    //2.       ,       
    //start:       
    //end:       
    //name:       
    public boolean searchName(int start, int end, String name) {
        boolean flag = true;//         ,false   ,     
        for (int i = start - 1; i < end; i++) {
            if (name.equals(names[i])) {
                flag = true;
                break;
            }
        }
        return flag;
    }

    //         
    public void showNames() {
        System.out.println("       :");
        for (int i = 0; i < names.length; i++) {
            if (names[i] != null) {
                System.out.println(names[i] + "\t");
                break;
            }
        }
    }
}

package instance.dh;

import Kind.dh.Student02;

import java.util.Scanner;

public class Student02Test {
    public static void main(String[] args) {
        Student02 student02 = new Student02();
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < 5; i++) {
            System.out.println("    " + (i + 1) + "      :");
            String name = input.next();
            student02.addName(name);
        }
        student02.showNames();
        //          
        System.out.println("           :");
        int start = input.nextInt();
        System.out.println("           :");
        int end = input.nextInt();
        System.out.println("             :");
        String findName = input.next();
        boolean flag = student02.searchName(start, end, findName);
        if (flag) {
            System.out.println("              ");
        } else {
            System.out.println("  ,            ");
        }
    }
}
1.4 기본 데이터 형식 과 참조 데이터 형식 전송 시의 차이
학생 클래스 를 정의 하고 추가 1 작업 을 실현 합 니 다.

package Kind.dh;
//   
public class Student {
    //  :        
    public String name;
    public int age;
    public String love;

    //  :      
    public void showInfo() {
        System.out.println("  " + name + "  " + age + "  " + "       " + love);
    }
}

package Kind.dh;

public class Demo {
    public void calc1(int num) {
        num = num + 1;
    }

    public void calc2(Student student) {
        student.age = student.age + 1;
    }
}

package instance.dh;

import Kind.dh.Student;
import Kind.dh.Demo;

public class DemoTest {
    public static void main(String[] args) {
        Demo test = new Demo();
        int n = 8;
        test.calc1(n);
        Student student = new Student();
        student.age = 18;
        test.calc2(student);
        System.out.println(n + "---" + student.age);
    }
}
실행 코드 발견 결 과 는8---19이지 만 우리 가 원 하 는 것 은 모든 결과 가 1 증가 하 는 것 입 니 다.9---19이 어야 합 니 다.왜 일 까요?이것 은 매개 변수 형식 이 다 르 기 때문에 기본 데이터 형식(int char double boolean float)이 라면 변수의 값 을 전달 하고 변수의 값 을 바 꾸 면 다른 변수의 값 을 영상 하지 않 습 니 다.그러나 매개 변 수 는 데이터 형식(사용자 정의 데이터 형식 배열 인터페이스)을 참조 하면 할당 할 때 원래 대상 의 참조(즉 메모리 주소)를 다른 참조 에 전달 합 니 다.
기본 데이터 형식 참조:
在这里插入图片描述
참조 데이터 형식 참조:
在这里插入图片描述
1.5 방법 전 참-대상 배열
학생 클래스 를 정의 하고 학생 의 성적 을 할당 하여 출력 하 며,학생 의 성적 을 수정 하 는 클래스 를 정의 하 며,학생 의 성적 이 60 점 보다 적 으 면 2 를 추가 합 니 다.

package Kind.dh;
//   
public class Student {
    //  :        
    public String name;
    public int age;
    public String love;
    public int score;
    //  :      
    public void showInfo() {
//        System.out.println("  " + name + "  " + age + "  " + "       " + love);
        System.out.println(name+"    :"+ score);
    }
}

package Kind.dh;

//       
public class ModifyScore {
    //    60      
    public void modifyStuScore(Student[] stus) {
        for (int i = 0; i < stus.length; i++) {
            if (stus[i].score < 60) {
                stus[i].score += 2;
            }
        }
    }

    //          
    public void showStu(Student[] stus) {
        for (Student stu : stus) {
            stu.showInfo();
        }
    }
}

package instance.dh;

import Kind.dh.ModifyScore;
import Kind.dh.Student;

public class ModifyScoreTest {
    public static void main(String[] args) {
        ModifyScore modifyScore = new ModifyScore();
        //           
        Student student1 = new Student();
        student1.name = "  ";
        student1.score = 43;
        Student student2 = new Student();
        student2.name = "  ";
        student2.score = 59;
        Student student3 = new Student();
        student3.name = "  ";
        student3.score = 90;
        Student[] students = new Student[3];
        students[0] = student1;
        students[1] = student2;
        students[2] = student3;
        //       、       
        System.out.println("     :");
        modifyScore.showStu(students);
        modifyScore.modifyStuScore(students);
        System.out.println("     :");
        modifyScore.showStu(students);
    }
}
구조 방법
new 대상 은 구조 함수,예 를 들 어 Student student 1=new Student()를 사용 해 야 합 니 다.이 때 호출 된 것 은 Hello 의 매개 변수 없 는 구조 방법 입 니 다.
구조 방법 은 대상 의 초기 화 를 완성 하 는 데 사용 되 지만 코드 에 수 동 으로 쓸 필요 가 없다.이것 은 시스템 이 기본 적 인 무 참 구조 방법 을 제공 하기 때문이다.구조 방법 도 방법의 범주 에 속 하기 때문에 구조 방법 도 파 라 메 터 를 지정 할 수 있 음 을 알 수 있다.
구조 방법의 형식 은 다음 과 같다.
접근 수정자 구조 방법 명(){
//코드 초기 화
}
우리 가 주의해 야 할 것 은 구조 방법 이 값 유형 을 되 돌려 주지 않 았 고 방법 명 과 유형 명 이 같다 는 것 이다.반환 값 형식 이 있 는 방법 은 일반적인 방법 입 니 다.

package Kind.dh;

//   
public class Student {
    //  :        
    public String name;
    public int age;
    public String love;
    public int score;

    //               
    /*
     public Student(){
        //       
    }
    */
    //            
    /*
    public Student(String name,int score){
        name = name;
        score = score;
    }
    */
    //         
    /*
     public Student(String n,int s){
        name = n;
        score = s;
    }
    */
    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    //  :      
    public void showInfo() {
//        System.out.println("  " + name + "  " + age + "  " + "       " + love);
        System.out.println(name + "    :" + score);
    }
}

package Kind.dh;

//       
public class ModifyScore {
    //    60      
    public void modifyStuScore(Student[] stus) {
        for (int i = 0; i < stus.length; i++) {
            if (stus[i].score < 60) {
                stus[i].score += 2;
            }
        }
    }

    //          
    public void showStu(Student[] stus) {
        for (Student stu : stus) {
            stu.showInfo();
        }
    }
}

package instance.dh;

import Kind.dh.ModifyScore;
import Kind.dh.Student;

public class ModifyScoreTest {
    public static void main(String[] args) {
        ModifyScore modifyScore = new ModifyScore();
        //           
        //                
        Student student1 = new Student("  ", 43);
//        student1.name = "  ";
//        student1.score = 43;
        Student student2 = new Student("  ", 59);
//        student2.name = "  ";
//        student2.score = 59;
        Student student3 = new Student("  ", 90);
//        student3.name = "  ";
//        student3.score = 90;
        Student[] students = new Student[3];
        students[0] = student1;
        students[1] = student2;
        students[2] = student3;
        //       、       
        System.out.println("     :");
        modifyScore.showStu(students);
        modifyScore.modifyStuScore(students);
        System.out.println("     :");
        modifyScore.showStu(students);
    }
}
코드 에 다음 단락 이 있 습 니 다:

public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }
여기 this 키 워드 는 현재 대상 을 가리 키 는 것 입 니 다.

Student student1 = new Student("  ", 43);
Student student2 = new Student("  ", 59);
Student student3 = new Student("  ", 90);
현재 대상 이란 Student 류 가 인 스 턴 스 를 거 쳐 만들어 진 student 1,student 2,student 3 를 말한다.프로그램 이 student 1 을 만 들 었 을 때 this 대 는 student 1 을 말 합 니 다.student 2 를 만 들 었 을 때 this 대 는 student 2 라 는 대상 을 말 합 니 다.
코드 에 인삼 이 있 는 구조 방법 을 정의 하면 시스템 은 더 이상 인삼 이 없 는 구조 방법 을 제공 하지 않 을 것 이다.
2.1 this 의 다른 용법
this 클래스 의 일반적인 방법 과 구조 방법 을 호출 할 수 있 습 니 다.

package Kind.dh;

//   
public class Student {
    //  :        
    public String name;
    public int age;
    public String love;
    public int score;

    //               
    /*
     public Student(){
        //       
    }
    */
    //            
    /*
    public Student(String name,int score){
        name = name;
        score = score;
    }
    */
    //         
    /*
     public Student(String n,int s){
        name = n;
        score = s;
    }
    */
    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    //  :      
    public void showInfo() {
//        System.out.println("  " + name + "  " + age + "  " + "       " + love);
        System.out.println(name + "    :" + score);
    }
    public void method1(){
//      showInfo();
        //this        
        this.showInfo();
    }
    public Student(String name,int score,int age){
        /*
        this.name = name;
        this.score = score;
        this.age = age;
        */
        //       
        this(name, score);
        this.age= age;
        //      this                。
    }
}
3.방법 과부하
방법 은 일반 방법 과 구조 방법 으로 나 뉘 기 때문에 방법 과부하 도 상응 하 게 일반 방법 과부하 와 구조 방법 으로 나 뉜 다.
  • 구조 방법 과부하:
  • 방법
    매개 변수 항목 이 다 름
    반환 값,접근 수정자 와 무관 합 니 다.
  • 일반 방법 과부하
  • 같은 부류 에서
    방법
    매개 변수 개수 나 유형 이 다 릅 니 다.
    반환 값,접근 수정자 와 무관 합 니 다.
  • 간이 계산 기 를 실현 하고 각각 두 개의 정수,두 개의 부동 소수점,세 개의 부동 소수점 을 더 한 조작
  • 을 실현 한다.
    
    package Kind.dh;
    
    //       
    public class Calc {
        //          
        public void add(int num1, int num2) {
            int sum = num1 + num2;
            System.out.println(num1 + " + " + num2 + " = " + sum);
        }
    
        //           
        public void add(double num1, double num2) {
            double sum = num1 + num2;
            System.out.println(num1 + " + " + num2 + " = " + sum);
        }
    
        //             
        public void add(double num1, double num2, double num3) {
            double sum = num1 + num2 + num3;
            System.out.println(num1 + " + " + num2 + " + " + num3 + " = " + sum);
        }
    }
    
    
    package instance.dh;
    
    import Kind.dh.Calc;
    
    public class CalcTest {
        public static void main(String[] args) {
            Calc calc = new Calc();
            calc.add(2, 8);
            calc.add(2.3, 78.9);
            calc.add(23.4, 67.8, 90.8);
        }
    }
    
    사실System.out.println();은 하나의 방법 으로 무 거 운 짐 을 싣 는 것 이다.
    在这里插入图片描述
    3.1 구성원 변수 와 부분 변수
    변수 성명 의 위 치 는 변수의 역할 영역 을 결정 합 니 다.변수의 역할 영역 은 프로그램 에서 변수 이름 에 따라 이 변수의 영역 을 방문 할 수 있 는 지 확인 합 니 다.
    구성원 변수 와 부분 변수의 차이:
  • 작용 역 이 다르다
  • 부분 변수의 역할 은 그 방법 에 있다.
    구성원 변수(전역 변수)는 전체 클래스 에 작용 합 니 다.
  • 초기 값 이 다르다
  • 자바 는 구성원 변수 에 초기 값 을 줍 니 다.
    자바 는 부분 변수 에 초기 값 을 부여 하지 않 습 니 다.
  • 주의:
  • 같은 방법 에 서 는 같은 이름 의 부분 변 수 를 허용 하지 않 습 니 다.
    다른 방법 에서 같은 이름 의 부분 변 수 를 가 질 수 있 습 니 다.
    같은 클래스 에서 구성원 변수 와 국부 변수 가 같은 이름 일 때 국부 변 수 는 더욱 높 은 우선 순 위 를 가진다.
    
    package cn.zhz.Test.dh;
    
    public class Var {
        //  :             
        //      num s
        //               ,   int  0,String  null,double  0.0
        int num;
        String s;
        //      ,              ,                    
        int var = 9;
    
        //  :        
        public void m1() {
            //   a     m1 
            int a = 1;
            for (; a <= 5; a++) {
                System.out.println("hello");
            }
        }
    
        public void m2() {
            //   a     for   
            for (int b = 1; b <= 5; b++) {
                System.out.println(b);
            }
        }
    
        public void m3() {
            System.out.println(num);
            System.out.println(s);
        }
    
        //        ,        
        public void m4(int num) {
            System.out.println("num = " + num);
        }
    
        public static void main(String[] args) {
    //        //      a        ,  a     main   
    //        int a = 0;
    //        for(;a <= 4;a ++){
    //            System.out.println("hello");
    //        }
    //        System.out.println(a);//        a
        }
    }
    
    자바 의 기본 적 인 방법 과 방법 에 대한 자세 한 내용 을 소개 합 니 다.자바 방법 과 방법 에 관 한 더 많은 재 업로드 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기