Java核心基础轻松笔记:对象与类

最近,有人问到什么叫接口,在程序开发过程中,就是多个不断地调用接口完成一件件事情。按照我的理解,给他解释说,比如有一个大的苹果农场,在这个农场里面生产苹果,突然有个商人想获取苹果,商人不用关心苹果怎么生产的,农场主只需要给一个获取苹果的“通道”就可以,这个“通道”就可以称为一个接口,其中查看每个苹果的各个方面的指标,包含苹果的名称、种类、颜色,就是查看苹果属性,就可以将这些属性封装成一个对象,这就是今天详解的类。

1、 对象 (OPP)
对象,是一个类的实例。类,其实就是一个模板,类里面包含了对象的属性和行为动作,这几句话理解了很久,换句土话就是我有个苹果工厂(就是类),苹果厂里面可以有几种苹果(就是几个对象,其实你添加梨对象,就是名字),例如下面的代码:runoob这个网址形象画出了,就不盗图了,在此引用下地址,可以形象查看下

package JavaOPP;

public class Apple {
    // apple name
    private String name;
    // apple kind
    private int kind;
    //apple color: red、green apple
    private String color;
    //The total number of apple
    private int numbers;

    //second object
    class RedApple {
        private String name;
        private int kind;
    }

    private final int id = 3;
}

2、Set和Get方法,操作变量属性方法
苹果在创建以后,自然要将一些它的名字、颜色等属性设置下么,也就是对象有一些可以操作的方法,将变量进行初始化或者更改,所以也就存在了Set和Get方法了,如下:

 public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getKind() {
        return kind;
    }

    public void setKind(int kind) {
        this.kind = kind;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public int getNumbers() {
        return numbers;
    }

    public void setNumbers(int numbers) {
        this.numbers = numbers;
    }

    public void setAppleName(String name) {
        this.setName(name);
    }

    public String getAppleName() {
        return this.getName();
    }

通过这些方法,我们生成一个苹果,也就是一个对象的时候,可以用Apple.方法名称的方式,调用这些方法,当然这些方法都是public公共的,可以随意调用了。

3、公共方法域Public
很容易理解,当将方法名称设置为public时候,这个时候New Apple出来的对象可以调用任何public方法,也就是可以随意改变苹果颜色以及其它属性,好处方便,随意更改,不管在哪里引用,哪个类包里面生成对象,都可以引用。比如下图,在Main函数里面或者在AppleTest里面都可以任意引用,也就是你这个对象,只有被生成以后,就可以随意折腾了,愿意怎么改,怎么改,无所谓了。
这里写图片描述

4、保护方法域Protected
这个使用范围就缩小点了,也就是只能在同一个Package里面使用,能不能用测试下么。
先设置protected方法:

 protected String getName() {
        return name;
    }

    protected void setName(String name) {
        this.name = name;
    }

然后再AppleTest类里面测试下,能不能使用:
这里写图片描述
在Main类里面测试下,Main类是在包src里面:
这里写图片描述
看到在同一个Package里面是可以使用的,不同包之间无法使用的,一般来说这个修饰符很少使用,具体哪些情况使用,后期了解了以后,补下。
5、私有方法域Private
这个范围就更小了,只能在类内部使用了,直接测试代码:

private String getName() {
        return name;
    }

    private void setName(String name) {
        this.name = name;
    }

这个能不能用,大家有时间自己测试下吧,其实只能自己类里面调用。应用时候呢,比如苹果生成以后,想看下这个苹果叫什么时候,我们可以写个函数,在类内部方法调用这个私有方法,这样别人改不了,只能看,所以大大保护了这个对象的某些属性,比如更常见的账户密码

 public String getAppleName() {
        return this.getName();
    }

6、总结下三个方法的区域
看下截图,可以看出了,实际应用的话,看你喜好了么,哈哈,其实是看业务需求,具体实际情况实际出发。
这里写图片描述

7、final方法
final修饰的变量,在类中只能生成get方法的,也就是当我们确定一个变量值时候,实例化该对象,换句话说就是这个苹果从出生已经确定了名字了,那么我们就可以使用final修饰下,这样别人实例对象后,只能看该苹果名字,但不能换个名字再展示了。
这里写图片描述
还有static修饰符,代码如下:

private static int nextId = 3;

    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        System.out.println(nextId);
        this.id = id + nextId;
        nextId++;
    }
    public static void main(String[] args) {

        Apple apple = new Apple();
        Apple apple1 = new Apple();
        Apple apple2 = new Apple();
        apple.setId(1);
        apple1.setId(1);
        apple2.setId(1);
    }

输出结果是:3,4,5。也就三个实例化对象共享了一个nextId,也就是C语言里面,所有对象指向同一个nextId变量地址,这样可以方便写一些计数方法,比如生成了多少个苹果了啊。

8、重载
重载,就是重新加载,怎么重新加载呢,就是在实例化一个对象的时候,我们可以设置不同的构造函数,当然可以构造函数不写也可以,这样实例化时候自动调用程序默认的,也就是Java自己生成的。重载功能,比如我们生成的苹果要在生成时候设置几个属性,那不同的种类设置不同属性啊,可能这个苹果现在是青色,但是我们生成一个苹果对象,后期还可以通过set方法继续修改下,有的只能生成种类,颜色不需要设置,那创建不同的构造函数,就是不同的记录方法,轻而易举的将这些实现了,如下代码:

public Apple(){

    }
    public Apple(int kind) {
        this.kind = kind;
    }
    public Apple(String color ,int kind) {
        this.color = color;
        this.kind = kind;
    }
在调用的时候,根据不同的记录方式,就是不同入参个数,自动定位到该构造函数,分分钟生成相对应的对象。

虽然很基础,但是谁不是在错误和不会中走过来么,轻松笔记,让自己更明白编程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值