美文网首页Java 杂谈
从实践认识修饰符

从实践认识修饰符

作者: 布尔bl | 来源:发表于2019-05-04 15:38 被阅读0次

从实践认识修饰符

1 修饰符分类

说到修饰符,大家都知道有private deafult protect public,说到它们的区别,相信大家脑海会出现一张图。

  同一个类 同包非子类 子类 不同包非子类
private
default
protected
public

那么怎么从代码层面解释呢,学东西不能停留在理论层面,毕竟只是一份实践的工作。所以请看下面讲解,毕竟实践才是检验真理的唯一标准,说白了就是写一些demo,验证一下,工作中我们不了解某个方法或者某个类的时候,本人推荐写一些demo,做一些test,本人觉得这是技巧之一。

2 代码展示

本实例访问方法只有两种

  1. 创建对象访问,形成组合关系
  2. 继承类,形成继承关系

2.1 引入必要的maven

写demo验证自己想法时候,推荐使用test框架,不同每次都写一个main方法,只要一个注解@test就能解决问题

 <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>compile</scope>
 </dependency>

也可以使用slf4j框架来打印信息

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.6.4</version>
</dependency>

也可以使用lombok框架,实现注解@getter和@setter代替getter方法和setter方法


<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.16</version>
</dependency>

2.2 private

需要创建对象 调用类中属性

2.2.1 实例

package classtest;

import lombok.Getter;
import lombok.Setter;
import org.junit.Test;

/**
 * @Author buer
 * @create 2019/4/28 10:06
 * @description 父类
 */
@Getter@Setter
public class Animal {
    public int id = 1;
    private String name="chen";
    protected String parent = "parent";

    @Test
    public void eat(){
        Animal animal  = new Animal();
        System.out.println(animal.name);
    }
}

2.2.2 结果

chen

ps:贴图很麻烦 就贴字了

2.2.3 结论

在本类创建对象可以直接访问private属性字段

2.3 default

创建对象,访问属性

2.3.1 实例

package classtest;
@Getter
@Setter
public class Classtest {
    @Test
    public void defaultTest(){
        Animal animal  = new Animal();
        System.out.println(animal.name);
    }
}

另一个类name属性改变--》protected

package classtest;
@Getter
@Setter
 public class Animal {
    private int id;
    String name="chen";
    protected String parent;

}

2.3.2 结果

chen

2.3.3 结论

在同一个包中创建对象可以直接访问,不同包下创建对象不能访问default 默认属性字段,例子省略

2.4 protected

继承父类,不需要创建父类对象,直接访问protected属性字段

2.4.1 实例

package butong;

import classtest.Animal;
import org.junit.Test;

/**
 * @Author buer
 * @create 2019/5/4 14:37
 * @description
 */


public class Animalbutong extends Animal{

    @Test
    public void defaultTest(){
        System.out.println(parent);
    }
}

2.4.2 结果

chen

2.4.3 结论

在子类中可以直接进访问父类字段,不需要创建对象

2.5 public

在不同包以及非子类关系下,创建对象可以访问public属性字段

2.5.1 实例

test属性是public


package butong;

import classtest.Animal;
import org.junit.Test;

/**
 * @Author buer
 * @create 2019/5/4 14:37
 * @description
 */


public class Animalbutong {

    @Test
    public void defaultTest(){
        Animal animal = new Animal();
        System.out.println(animal.test);
    }
}

2.5.2 结果

chen

2.5.3 结论

在不同包以及非子类关系下,创建对象可以访问public属性字段

公众号

image

相关文章

  • 从实践认识修饰符

    从实践认识修饰符 1 修饰符分类 说到修饰符,大家都知道有private deafult protect publ...

  • 从认识到实践

    从认识到实践,是“认识过程的第二个阶段,即由精神到物质的阶段,由思想到存在的阶段”。这是认识过程的第二次能动的飞跃...

  • 考研政治背诵day4――实践和认识的关系

    实践和认识的关系 第一,实践是认识的来源。离开实践的认识是不可能产生的,一切真知都是从直接经验发源的。人的知识不外...

  • 马克思-第二章(认识的本质及其规律)

    实践对认识具有决定作用(实践是认识的基础) 1、实践是认识的(来源)2、实践是认识发展的(动力)3、实践是检验认识...

  • 实践认识实践

    又回到了这个话题。不我想说第三遍。 不总结別实践,不实践,你来干嘛?继续吧

  • DAY4

    Ricky学长整理 实践与认识的关系(实践对认识的决定作用) 第一,实践是认识的______。离开实践的认识是__...

  • 读书是实践,实践是读书

    一切认识从实践中得来,实践是认识的基础。获得的认识又能指导实践,实践依赖于认识。初次的实践获得初级的认识,初级的认...

  • 认识论

    认识论 在实践基础上产生的认识,是螺旋式发展的辩证过程。从生动的直观到抽象的思维,并从抽象的思维到实践,这就是认识...

  • 关于知行合一,伟人老早就说清楚了

    通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命...

  • RecyclerView从认识到实践(1)

    前言 作为一个Android开发,RecyclerView一定是不陌生的,其优秀的代码设计和丰富的功能实现,可以帮...

网友评论

    本文标题:从实践认识修饰符

    本文链接:https://www.haomeiwen.com/subject/kcnxoqtx.html