student.java

package com.company;

import javax.swing.plaf.synth.SynthOptionPaneUI;

/**
 * Created by dllo on 17/5/4.
 */
//定义一个类
//权限 关键字  类名
public class Student {
    //特征 - 变量
    private String name;
    private int age;
    private double score;
    //构造方法:
    //不写返回值类型, 名字必须与类名相同
    public Student(String name, int age, double score){
        this.name = name;
        this.age = age;
        this.score = score;
    }
    //当自己定义了构造方法,系统就不会再去创建
    //此时防止使用者调用不带参的构造方法报错,我们需要自定义一个
    public Student(){

    }
    //方法重载:
    //方法名相同,但是参数列表不同,被称为方法重载(overload)
    //参数列表不同代表:参数的类型,个数, 顺序不同
    //注意:重载与返回值类型无关

    public void setInfo(String name, int age, double score){
        this.name = name;
        this.age = age;
        this.score = score;
    }
    public void setName(String name){
        //this - 谁去调用setName方法,this就是谁
        this.name = name;
    }
    public String getName(){

        return name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }

    public void setScore(double score){
        this.score = score;
    }

    public double getScore(){
        return score;
    }



    //行为 - 方法(函数)
    public void info() {
        System.out.println(name);
        System.out.println(age);
        System.out.println(score);

    }
    //方法:
    //权限 返回值类型 方法名(参数1,参数2.....){
    //       }
    //形式1:无参无返回
    public void fun1(){
        int sum = 0;
        for (int i = 0; i < 3; i++){
            sum = sum + i;
        }
            System.out.println(sum);

    }
    //形式2:无参有返回值 - 好处是:可以将结果返回给调用者,让其决定处理方式
    public int fun2(){
        int sum = 0;
        for (int i = 0; i < 3; i++){
            sum = sum + i;
        }
//        System.out.println(sum);
        //return 要返回的具体数值
        // 注意:返回值的数值要与方法名前面的返回值类型一致
        return sum;
    }


    //形式3:有参有无返回值 - 好处是:灵活,兼容 可以让调用者决定计算范围
    public void fun3(int startNum, int endNum){
        int sum = 0;
        for (int i = startNum; i < endNum; i++){
            sum = sum + i;
        }
        System.out.println(sum);
    }

    //形式4:有参有返回值 - 好处是:兼顾了形式1和形式3的优势
    public int fun4(int startNum, int endNum){
        int sum = 0;
        for (int i = startNum; i < endNum; i++){
            sum = sum + i;
        }
//        System.out.println(sum);
        return sum;
    }

    //第一时期:先不写方法,将功能正常写在main函数内,然后再去看那些代码可以是共同完成一个功能,
    //       再创建无参数无返回值的函数,将代码剪切进去
    //第二时期:当第一时期很熟悉了以后,可以尝试先去创建无参数无返回值方法,
    //       并在其中编写功能代码,当需要某些变量信息却没有的时候,再去添加参数
    //第三时期:设计函数的时候考虑兼容性,考虑计算的结果放在方法内去操作好,
    //       还是返回给调用者操作好,再去决定使用什么形式的方法

    //练习 编写方法实现:
    //1.两个数的和,差
    public int  totalOfTwo(int a, int b){
        int total = a + b;
       return total;
    }
    public int  PoorOfTwo(int a, int b){
        int total = a + b;
        return total;
    }
    //2.两个数的最大值
    public int maxOfTwo(int a, int b){
        int max = 0;
        max = a > b ? a : b;
        return max;
    }

    //3.三个数的最大值
    public  int maxOfThree(int a , int b , int c ){
        int max = 0;
//        max = a > b ? a : b;
//        max = max > c ? max : c;
        max = maxOfTwo(a, b);
        max = maxOfTwo(max, c);
        return max;
    }


    //4.四个数的最大值
    public  int maxOfFoure(int a, int b , int c, int d){

        int max = 0;
//        max = a > b ? a : b;
//        max = max > c ? max : c;
//        max = max > d ? max : d;
        max = maxOfThree(a, b, c);
        max = maxOfTwo(max, d);

        return max;
    }

    //5.五个数的最大值
    public  int maxOfFive(int a, int b , int c, int d, int e){
        int max = 0;
//        max = a > b ? a : b;
//        max = max > c ? max : c;
//        max = max > d ? max : d;
//        max = max > e ? max : e;

        max = maxOfFoure(a, b, c, d);
        max = maxOfTwo(max, e);





        return max;
    }



}

Person.java

package com.company;

/**
 * Created by dllo on 17/5/4.
 */
public class Person {

   //1.私有的属性(变量)
    private String name;
    private int age;
    private String sex;
    private String constellation;

    //2,带参和不带参的构造方法
    public Person(String name, int age, String sex, String constellation){
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.constellation = constellation;
    }

    public Person(){

    }

    //3.为每一个变量写一对setter和getter方法
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }

    public void setAge(int age){
        this.age = age;
    }

    public int getAge(){
        return age;
    }

    public void setSex(String sex){
        this.sex = sex;
    }

    public String getSex(){
        return sex;
    }

    public void setConstellation(String constellation){
        this.constellation = constellation;
    }

    public String getConstellation(){
        return constellation;
    }

    //4,(可选)添加一个打印所有信息的方法
    public void info() {
        System.out.println(name);
        System.out.println(age);
        System.out.println(sex);
        System.out.println(constellation);
    }

}

Main.java 方法的调用

package com.company;

public class Main {

    public static void main(String[] args) {
//方法内部定义的放在栈区
        //定义对象
        //类名 对象名 = 内存中开辟空间  构造方法
//        Student stu = new Student();
        //使用对象 - 访问对象中的属性
//        stu.name = "貂蝉";
//        stu.age = 10;
//        stu.score = 80;
//        stu.info();

//        Student stu1 = new Student();
//        stu1.name = "妲己";
//        stu1.age = 364;
//        stu1.score = 150;
//        stu1.info();
//        stu.info();//重复输出不会覆盖已有的信息  而是开辟新的空间 已有的信息依旧会输出


//        Person per = new Person();
//        per.name = "妲己";
//        per.age = 1038;
//        per.sex = "女";
//        per.constellation = "白羊座";
//
//        per.info();

        //     Student stu = new Student();
//        stu.fun1();
//        int sum = stu.fun2();
//        System.out.println("可以任意处理fun2返回结果: " + sum);

//        stu.fun3(5, 10);

//        int sum = stu.fun4(3, 9);
//       System.out.println("总数 :" + sum);

//        int total = 0;
//        int poor = 0;
//        total = stu.totalOfTwo(3, 4);
//        poor = stu.PoorOfTwo(5, 3);
//        System.out.println("和:" + total);
//        System.out.println("差:" + poor);
//
//        int max = stu.maxOfTwo(7, 10);
//        System.out.println("最大值:" + max);
//
//        int max1 = stu.maxOfThree(6, 7, 9);
//        System.out.println("三个数最大值: " + max1);
//
//        int max2 = stu.maxOfFoure(7, 22, 44, 10);
//        System.out.println("四个数的最大值 : " + max2);
//
//        int max3 = stu.maxOfFive(43, 656, 87, 233, 76);
//        System.out.println("五个数的最大值 :" + max3);

        Student stu = new Student("猴子", 21, 149.5);
//        stu.setName("来来");
//        stu.setAge(21);
//        stu.setScore(145.5);
//        stu.info();
//        String str = stu.getName();
//        System.out.println("名字: " + str);
//
//        int age = stu.getAge();
//        System.out.println("年龄: " + age);
//
//        double score = stu.getScore();
//        System.out.println("分数: " + score);
//        stu.setInfo("姓名: " + "猴子", 21, 140.5);
//        stu.info();
        //可以创建时直接赋值
        Person per = new Person("妲己", 23, "女", "白羊座");
        //用setter和getter方法操作单个变量
        per.setAge(34);
        per.info();
        //也可以创建一个没有信息的对象
        Person per1 = new Person();
        //再通过setter和getter方法挨个赋值或读值
        per1.setName("露娜");
        per1.setAge(44);
        per1.setSex("女");
        per1.setConstellation("金牛座");
        per1.info();
    }

}