【转】java方法 、 封装

转自:https://blog.csdn.net/sky274548769/article/details/80518896

java的面向对象指的是将我们的现实当中的事物抽象成一段java代码来描述,那现实当中的实体对象具有哪些方面是需要用代码的描述?
任何一个类需要从两方面描述
1、特征、属性 —-一定时间范围内不会变化
2、行为、功能、方法 — 该类事物可以发出的动作

在java里面概括为 属性 和 方法(函数)

public class Dog{

    //特征   --  属性
    //修饰符  数据类型  属性名;
    public String name;
    public String color;
    public String pingzhong;
    public String sex;


    //行为   --  方法
    //修饰符 void 方法名() {}

    public void move() {

        System.out.println("4条腿跑");
        System.out.println("4条腿跑");
        System.out.println("4条腿跑");
        System.out.println("4条腿跑");
    }

    public void shut() {
        System.out.println("汪汪的叫。。。");
    }


}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

此处注意:类体里面只能出现属性和方法, 代码是只能出现在方法里面。

根据类创建对象: new
类名 对象名/变量名 = new 类名();

public class Test{

    public static void main(String args[]) {
        //类名  对象名 =  new  类名();
        Dog hashiqi = new Dog();
        hashiqi.name = "旺财";
        hashiqi.sex = "公";
        hashiqi.color = "黑色";
        hashiqi.pingzhong = "哈士奇";

        System.out.println(hashiqi.name);
        hashiqi.move();

    }

}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

此时我们就可以利用对象名取调用属性和方法,

卸载软件: 解压软件

eclipse:我们java开发的IDE 集成开发环境

双击打开 进入选择工作空间的界面,工作空间尽量自己新建一个文件来是实现,因为工作空间是未来存放代码的地方。
进入软件之后,我们可以尝试开始编写代码,
新建工程 – src 新建。java文件写代码

这里写图片描述

方法讲解:

1、无返回值、无参数的方法 – 简单
public void name() {

}
2、无返回值、有参数的方法

public void name(类型 参数1, 类型参数2.。。。。。) {

}
当我们为该方法定义了参数的时候,我们在调用方法的时候就需要为这个参数赋值
在方法定义的时候我们实际上是规定方法的名字,是形参的格式,
在主方法里面进行方法调用的时候实际上我们是传递了实参【真实的数据】,

/**
     * 比较两个数大小,并输出大的一个数
     */
    public void getMax(int num1, int num2) {
        if(num1 > num2) {
            System.out.println(num1+"大");
        }else {
            System.out.println(num2+"大");
        }

    }

====================================
ShuXue baijuan = new ShuXue();

        //半径为10的园的面积
        baijuan.yuanMianJi(10);


        //半径为20的园的面积
        baijuan.yuanMianJi(20);

        //getMax
        baijuan.getMax(20,12);

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

参数类型不仅可以是基本数据类型,还是可以是复杂数据类型–类,

/**
     * 判断一个人是否胖
     * 
     * 方法的定义--规则
     * 
     * 参数:形参  == 形式参数:规定参数的类型和个数
     */
    public void isFat(Ren zhangsan, int num2) {

        double resu = zhangsan.tizhong / zhangsan.shengao / 2;

        if(resu < 18.5) {
            System.out.println("苗条");
        }else if(18.5 <= resu && resu <= 24.5) {
            System.out.println("正常");
        }else {
            System.out.println("肥胖");
        }

    }
===============================
Ren liudehua = new Ren();
        liudehua.shengao = 1.75;
        liudehua.tizhong = 64;


        //使用者  方法的调用   实参:我们传递的实际的数据
        baijuan.isFat(liudehua,10);
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

总结:对于我们面向对象来说,核心的思想就是我们想要完成一个功能,就先创建对象,然后调用方法!,所以方法就是我们的面向对象的核心部分

3、有参数有返回值的方法

人有买水的功能,小明同学是人, 小明同学就有买水的功能。 我们就可以命令小明帮我们买水, 参数–给钱, 小明同学买好水以后会给我们一瓶水,这个水就是小明买水这个功能的返回值,这里有两个动作,一个水小明要给(返回动作),一个是我们要收(接收动作)
语法规则:
public 返回值类型 方法名字( 参数) {

return   返回的数据;

 
 
  • 1

}
返回动作: return关键字

接收动作:调用的时候需要完成一个赋值操作

public class ShuXue3 {

    public int getMax(int num1, int num2){

        //条件表达式?结果1:结果2
        int max = (num1>num2)?num1:num2;
        // return
        return max;

    }

}

public static void main(String[] args) {

        ShuXue3 baijuan = new ShuXue3();
        int num = 1000;
        num = baijuan.getMax(12, 23);
        System.out.println(num);
    }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

复杂数据类型做返回值:

public Car zaoche(int num) {
        Car benchi = new Car();

        if(num == 1) {
            benchi.color = "红色";
            benchi.name = "奔驰";
            benchi.price = 100000;
        } else if(num == 2) {
            benchi.color = "白色";
            benchi.name = "宝马";
            benchi.price = 200000;
        } else {
            benchi.color = "黑色";
            benchi.name = "奥迪";
            benchi.price = 300000;
        }

        return benchi;

    }
public static void main(String[] args) {

        Gongchang chang = new Gongchang();
        Car dianluzi = chang.zaoche(2);
        System.out.println(dianluzi.name);

    }
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

4s点 找工厂提车 工厂生产车

工厂生产车 – 轮胎工厂生产轮胎

复杂数据类型做参数:

public class Car {

    public String name;
    public String color;
    public int price;
    public Luntai luntai;

}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

类就是一个复杂的数据类型,和int、double一个意思。编写方式不一样,类一般是我们自定义,基本数据类型是java规定,而我们的类就是多个基本数据类型publclass Car {

public String name;
public String color;
public int price;
//属性
public Luntai luntai;

}

public class Gongchang {

/**
* 1 奔驰
* 2 宝马
* 3 奥迪
* @param num
* @return
*/
public Car zaoche(int num) {
Car benchi = new Car();
LuntaiGongchang luntaichang = new LuntaiGongchang();

if(num == 1) {
benchi.color = “红色”;
benchi.name = “奔驰”;
benchi.price = 100000;
benchi.luntai = luntaichang.zaoluntai();
} else if(num == 2) {
benchi.color = “白色”;
benchi.name = “宝马”;
benchi.price = 200000;
benchi.luntai = luntaichang.zaoluntai();
} else {
benchi.color = “黑色”;
benchi.name = “奥迪”;
benchi.price = 300000;
benchi.luntai = luntaichang.zaoluntai();
}

return benchi;

}

}

public class Luntai {

    public String name;
    public String color;
    public double price;

}

public class LuntaiGongchang {

    public Luntai zaoluntai() {

        Luntai miqilin = new Luntai();
        miqilin.name = "米其林";
        miqilin.color = "黑色";
        miqilin.price = 1700;
        return miqilin;
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

利用对象做属性,同时赋值也通过创建对象赋值

面向对象的特征:
1、抽象
2、封装:

public class Person {

    //公有
    public String name;
    //私有
    private int age ;

    //性别

    /**
     * 封装第一步,就是把属性私有化,步让外部可以访问
     * 封装第二步,提供公开的方法来访问我们的私有属性
     */
    /**
     * 设置值
     * @param age1
     */
    public void setAge(int age1) {
        if(age1 > 18) {
            age = age1;
        }else {
            age = 18;
        }
    }

    /**
     * 拿到值
     * @return
     */
    public int getAge() {
        return age;
    }
}
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值