精华内容
下载资源
问答
  • Java封装的简单例子
    千次阅读
    2021-02-28 11:39:20

    先来个例子看看;

    public class Man

    {

    //对属性的封装,一个人的姓名,年龄,妻子都是这个对象(人)的私有属性

    private String name;

    private int age;

    private Woman wife;

    //对改人对外界提供方法的封装,可以设定妻子,姓名,年龄也可以获得男人的姓名和年龄

    public void setWife(Woman wife)

    {

    this.wife = wife;

    }

    public String getName()

    {

    return name;

    }

    public void setName(String name)

    {

    this.name = name;

    }

    public int getAge()

    {

    return age;

    }

    public void setAge(int age)

    {

    this.age = age;

    }

    }

    public class Woman

    {

    //属性封装

    private String name;

    private int age;

    private Man husband;

    //方法封装

    public String getName()

    {

    return name;

    }

    public void setName(String name)

    {

    this.name = name;

    }

    public int getAge()

    {

    return age;

    }

    public void setAge(int age)

    {

    this.age = age;

    }

    public Man getHusband()

    {

    return husband;

    }

    public void setHusband(Man husband)

    {

    this.husband = husband;

    }

    }

    /**

    * 仔细看就会发现,Man类没有提供getWife的方法,这是以为男人不想让自己的妻子被外界访问,

    *

    * 直接下来呢,就是封装可以吧一个对象的属性私有,而提供一些可以被外界访问的属性的方法,

    *

    * 比如说,name属性,Man和Woman类都有相应的get和set方法,外界都可以通过这些方法访问和修改

    *

    * 同时对一些改对象不想让外界访问的属性,就不提供其方法,比如说Man的wife属性,就没有get方法

    *

    * 外界是不能带到Man类的wife属性的

    *

    */

    上面那例子可能没有突出封装的好处,下面来个超简单的表达下:

    public class Show

    {

    public static void show(String str)

    {

    System.out.println(str);

    }

    }

    上面就是对 System.out.println();的封装。

    调用的时候 :

    public class Use

    {

    public static void main(String[] args)

    {

    Show.show("封装");

    }

    }

    这样用的时候就不用使:System.out.println("封装");

    如果还有地方用到, 就省去了好多 System.out.println();

    简而言之,有一段代码,如果3个程序要用它,你不封装,那你就得在这3个程序里都要写,浪费代码,浪费时间。

    更多相关内容
  • 主要介绍了Java封装统一的Result Model案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 主要为大家详细介绍了java封装前端查询条件的通用版,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • java封装echarts

    2019-08-30 16:58:17
    java封装的echarts 组件,挺好用的。
  • Java封装AESUtil类

    2018-06-21 11:54:10
    AESUtil Java封装类 AES加密工具类,其中导入的jar包jdk引进去就可以用了,jdk的版本尽量大于1.5
  • 主要介绍了Java封装数组之添加元素操作,结合实例形式分析了Java封装数组实现元素追加、插入等相关操作技巧,需要的朋友可以参考下
  • Auto_adb 用java将adb常用命令进行命令封装 参考
  • wechat 微信公众平台常用接口java封装
  • Java封装详解,很简单

    千次阅读 2022-01-16 12:51:41
    大家好,今天来给大家分享一下Java封装 面向对象有三大特征: 1.封装 2.继承 3. 多态 我们来讲Java封装,它也是Java面向对象的三大特征之一 封装 ,大白话的解释就是,把一个东西,装到箱子了,只留小小的口,用于...

    大家好,今天来给大家分享一下Java封装

    面向对象有三大特征:
    1.封装
    2.继承
    3. 多态
    我们来讲Java封装,它也是Java面向对象的三大特征之一
    封装 ,大白话的解释就是,把一个东西,装到箱子了,只留小小的口,用于外界访问

    画一个图

    在这里插入图片描述
    就是该露的露,该藏的藏

    我们在程序设计的过程中要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己来完成,不允许外部干涉,低耦合:就是, 仅暴露少量的方法给外部使用

    封装(数据的隐藏)
    通常,应禁止直接访问一个对象中数据的实际表示,而是应该通过操作接口来访问,这叫信息隐藏

    属性私有

    get/set

    看代码:

    package Fengzhuang;
       //类    private:私有
       
    public class student {
            
          private String name; //名字(属性)
          private int id; //学号(属性)
           private char sex;//性别(属性)
    
        //学习()      这是方法
        //性别()      这是方法
    
    
    }
    

    作为一号代码区

    接下来再写

    定义二号代码区

    package Fengzhuang;
    
    public class Application {
        public static void main(String[] args) {
              student s1 =new student();    //创建对象
              s1.name       //注意这一行,.name会冒红
              //因为name属性已经被私有化(private)了,所以没有办法调用
        }
    }
    

    我们来改一下一号代码区的代码

    package Fengzhuang;
       //类    private:私有
    public class student {
           //属性私有
          private String name; //名字(属性)
    

    这里就不会报错了

    这样,我们就得到一个问题
    属性被私有化,外部没有办法调用,而在这样的情况下,我们在不想改变私有属性的情况下,想让外部依然调用

    这样改

    package Fengzhuang;
       //类    private:私有
    public class student {
           //属性私有
          private String name; //名字(属性)
          private int id; //学号(属性)
           private char sex;//性别(属性)
    
        //学习()      这是方法
        //性别()      这是方法
           //提供一些可以操作这些属性的方法
           //提供了一些public的get  ,set方法
           //get   获取这个数据
           public String getName(){
               return this.name;
           }
         
           
    
    
    }
    
    package Fengzhuang;
    
    public class Application {
        public static void main(String[] args) {
              student s1 =new student();
              String name =s1.getName();   //注意这一行
        }
    }
    

    这样,我们就实现了对私有属性的调用

    在一号代码区

     //set   给这个数据设置值
    public void  setName(String name){
               this.name = name;
     }
    
    package Fengzhuang;
    
    public class Application {
        public static void main(String[] args) {
              student s1 =new student();
    
              String name =s1.getName();
        s1.setName("帅哥");
            System.out.println(s1.getName());  //输出
            
        }
    
    }
    

    执行结果
    在这里插入图片描述

    //alt+insert 快捷键
    自动生成

    在这里插入图片描述

    在这里插入图片描述

    接下来,我们做一个判断

    私有化age (年龄) 这个属性

    package Fengzhuang;
       //类    private:私有
    public class student {
           //属性私有
          private String name; //名字(属性)
          private int id; //学号(属性)
           private char sex;//性别(属性)
           private  int age;  //年龄(属性)
           
    
        //学习()      这是方法
        //性别()      这是方法
           //提供一些可以操作这些属性的方法
           //提供了一些public的get  ,set方法
           //get   获取这个数据
           public String getName(){
               return this.name;
           }
         //set   给这个数据设置值
     public void  setName(String name){
               this.name = name;
     }
    
         //alt+insert
    
           public int getId() {
               return id;
           }
    
           public void setId(int id) {
               this.id = id;
           }
    
           public char getSex() {
               return sex;
           }
    
           public void setSex(char sex) {
               this.sex = sex;
           }
       }
    

    使用set

      public int getAge(){
               return age;
           }
    
           public void setAge(int age) {
               this.age =age;
           }
    
     s1.setAge(999);
            System.out.println(s1.getAge());
            
    

    执行结果

    在这里插入图片描述

    加了一个条件判断

     public void setAge(int age) {
               if (age > 120 || age < 0) {    //不合法
                   this.age = 3;
               }else {
                   this.age = age;
               
               }
    

    执行结果
    在这里插入图片描述
    显示为3

    注意:在上面的判断当中,
    1.我们把age (年龄) 这个属性私有化

    2.我们使用set 赋值,如果输出的数据是大于120并且小

    于0的数(对于人的年龄来说,不合理),随即判断输入者的年龄为3岁小孩

    s1.setAge(7);   //不合法
            System.out.println(s1.getAge());
    

    在这里插入图片描述

    s1.setAge(-1);   //不合法
            System.out.println(s1.getAge());
    

    执行结果

    在这里插入图片描述

    整体代码

    package Fengzhuang;
       //类    private:私有
    public class student {
           //属性私有
           private String name; //名字(属性)
           private int id; //学号(属性)
           private char sex;//性别(属性)
           private int age;  //年龄(属性)
    
    
           //学习()      这是方法
           //性别()      这是方法
           //提供一些可以操作这些属性的方法
           //提供了一些public的get  ,set方法
           //get   获取这个数据
           public String getName() {
               return this.name;
           }
    
           //set   给这个数据设置值
           public void setName(String name) {
               this.name = name;
           }
    
           //alt+insert
    
           public int getId() {
               return id;
           }
    
           public void setId(int id) {      
               this.id = id;
           }
    
           public char getSex() {
               return sex;
           }
    
           public void setSex(char sex) {
               this.sex = sex;
           }
    
           public int getAge() {
               return age;
           }
    
           public void setAge(int age) {
               if (age > 120 || age < 0) {
                   this.age = 3;
               }else {
                   this.age=age;
    
               }
           }
       }
    
    package Fengzhuang;
    
    public class Application {
        public static void main(String[] args) {
              student s1 =new student();
    
              String name =s1.getName();
        s1.setName("帅哥");
    
            System.out.println(s1.getName());
        s1.setAge(-1);   //不合法
            System.out.println(s1.getAge());
        }
    
    }
    

    Java的封装作用
    1.提高了程序的安全性,保护数据
    2. 隐藏代码的实现细节
    3. 统一接口
    4. 增强系统的可维护性

    好了,今天的Java封装就讲到这里了,谢谢大家

    展开全文
  • 什么是java封装.pdf

    2020-05-19 19:54:11
    什么是JAVA封装?封装就是将属性私有化,提供公有的方法访问私有属性,做法:修改属性可见性来限制对属性的访问,给每个属性创建get和set方法。 适合初学者学习和加深印象理解,也适合伙伴们复习交流用。
  • 主要介绍了Java封装数组实现在数组中查询元素和修改元素操作,结合实例形式分析了java针对数组元素查询、修改的封装操作实现技巧,需要的朋友可以参考下
  • java怎么封装封装_用Java封装

    千次阅读 2020-07-17 23:44:52
    java怎么封装封装 什么是封装? (What is Encapsulation?) Encapsulation is one of the ways to achieve abstraction in Object-oriented programming. 封装是在面向对象编程中实现抽象的方法之一。 It’s one of ...

    java怎么封装封装

    什么是封装? (What is Encapsulation?)

    • Encapsulation is one of the ways to achieve abstraction in Object-oriented programming.

      封装是在面向对象编程中实现抽象的方法之一。
    • It’s one of the core concepts of OOPS paradigm.

      是OOPS范式的核心概念之一
    • Encapsulation is the process of hiding Objects’ properties from the outer world and provides methods to access them.

      封装是从外部世界隐藏对象属性的过程,并提供访问它们的方法。
    • It’s the mechanism to bind together the data and the function that work on it.

      这是将数据和对其起作用的功能绑定在一起的机制。
    • Encapsulation hides the objects’ data, so it’s also called data-hiding.

      封装会隐藏对象的数据,因此也称为数据隐藏

    用Java封装 (Encapsulation in Java)

    We can achieve encapsulation in Java by declaring all the class fields as private. Then provide the public getter and setter methods for them.

    我们可以通过将所有类字段都声明为私有来实现Java封装。 然后为他们提供公共的getter和setter方法。

    Here is a simple example of encapsulation in a Java class.

    这是一个封装在Java类中的简单示例。

    package com.journaldev.oops.encapsulation;
    
    public class Data {
    
    	private int id;
    	private String value;
    
    	public int getId() {
    		return id;
    	}
    
    	public void setId(int id) {
    		this.id = id;
    	}
    
    	public String getValue() {
    		return value;
    	}
    
    	public void setValue(String value) {
    		this.value = value;
    	}
    
    }

    封装的优势 (Advantages of Encapsulation)

    1. The encapsulated code is loosely coupled. We can change the class variable name without affecting the client programs.
      private String name;
      
      public String getValue() {
      	return name;
      }
      
      public void setValue(String value) {
      	this.name = value;
      }

      Yes, you can’t change the methods because it might break the client code. The best way would be to mark these methods as deprecated and provide the new getter-setter methods.

      封装的代码是松散耦合的 。 我们可以更改类变量名称,而不会影响客户端程序。
      private String name;
      
      public String getValue() {
      	return name;
      }
      
      public void setValue(String value) {
      	this.name = value;
      }

      是的,您不能更改方法,因为它可能会破坏客户端代码。 最好的方法是将这些方法标记为已弃用,并提供新的getter-setter方法。

    2. The caller doesn’t know what is happening inside the getter and setter methods. It makes our code more secure. We can add some validations in the getter-setter methods.
      public void setId(int id) {
      	if (id < 0)
      		throw new IllegalArgumentException("id can't be negative.");
      	this.id = id;
      }

      调用者不知道getter和setter方法内部正在发生什么。 它使我们的代码更安全 。 我们可以在getter-setter方法中添加一些验证。
    3. We can easily implement access control for the object properties. If you don't want some class variable to be set from outside, don't provide the setter method.

      我们可以轻松地实现对对象属性的访问控制 。 如果您不想从外部设置某些类变量,请不要提供setter方法。
    4. The encapsulation helps in writing unit test cases easily. The unit testing frameworks provides ways to write test cases for the methods, not for the fields.

      封装有助于轻松编写单元测试用例 。 单元测试框架提供了为方法而非领域编写测试用例的方法。
    5. The encapsulated code is reusable. If you didn't noticed, the above deprecated functions are using the new getter-setter methods.

      封装的代码是可重用的 。 如果您没有注意到,以上不推荐使用的函数正在使用新的getter-setter方法。

    参考资料 (References)

    翻译自: https://www.journaldev.com/33221/encapsulation-in-java

    java怎么封装封装

    展开全文
  • java封装ffmpeg对视频截图和转格式(含代码),格式转换为flv
  • 封装、继承、多态三大特征是java中比较常用的,务必要掌握,下面给大家介绍Java封装、继承、多态三大特征的理解,有不清楚的朋友可以一起学习下
  • Java封装SqlServer

    2016-12-29 20:39:08
    Java简单的实现SqlServer的封装,麻雀虽小,五脏俱全,用类的方式封装使得解读Java数据库操作更为明确,其中包含了查询、执行sql等。
  • Java 封装、继承、多态

    千次阅读 2021-03-07 14:27:26
    Java 封装、继承、多态1.封装封装的理解:将类的某些信息隐藏在类的内部,不允许外部程序直接访问,并通过该类提供的方法来实现对隐藏信息的操作和访问。(简单的说就是隐藏对象的信息,留出访问的接口)。特点:1....

    Java 封装、继承、多态

    1.封装:

    封装的理解:

    将类的某些信息隐藏在类的内部,不允许外部程序直接访问,并通过该类提供的方法来实现对隐藏信息的操作和访问。(简单的说就是隐藏对象的信息,留出访问的接口)。

    特点:1.只能通过规定的方法访问数据;2.隐藏类的实例细节,方便修改和实现。

    实现封装的方式:使用访问控制符:

    java提供了三种访问权限,准确的说还有一种是默认的访问权限,加上它一共四种。

    private   在当前类中可访问

    default        在当前包内和访问

    protected    在当前类和它派生的类中可访问

    public          公众的访问权限,谁都能访问

    现在代码实现下封装:

    bfb3fc9643ca4a300140d7438c8ae31f.png

    现在有两个类 学生类里有几个共有的字段 name age sex 现在用另一个Teacher类是可以访问它的属性的并非没有报错。

    32918e22ae7473e35d3561d50c56a9ca.png

    现在把字段的访问控制符 都改成了private Teacher类就访问不到了 这样就完成了属性的封装 那怎么让外界访问到Student的字段呢?

    就要用get set方法了

    789dc16cf2c9cc15de1214ad1c83dd64.png

    现在写了set和get方法 其他类只需要用get和set方法 就可以完成值的设置和获取

    运行Teacher.java结果:

    ec07bba4ecbe7236135c5a3e12ad9626.png

    可以看到设置并获取到了值

    2.继承:

    继承的概念

    继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。

    继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

    类的继承格式:

    在 Java 中通过 extends 关键字可以申明一个类是从另外一个类继承而来的,一般形式如下:

    class父类 {

    }class 子类 extends父类 {

    }

    代码实现一下:

    169ddf94194fc5b08af8338a129bbde5.png

    现在这里有三个类 Student Person Teacher 其中Student 和 Teacher 都继承了Person 所以 Person是父类 Student和Teacher是子类

    a0848d0a2ef38a9e483f00aa475e35dc.png

    现在向Preson类写一个字段和一个方法 在子类中创建父类对象 然后可以看到子类都可以调用父类的方法和属性 这就是继承:子类从父类继承方法,使得子类具有父类相同的行为。

    运行子类结果:

    736d82dcacaf77a480240ec766bd6456.png

    得到了父类的方法和属性

    f88c794b7c9050e9452c16c4df80f8f4.png

    当我们用一个对象 点 的时候下面会有很多方法 我们并没有继承为什么会有呢?

    这是因为java的所有类都继承的object类这些方法其实就是object类中的方法

    3.多态:

    多态是同一个行为具有多个不同表现形式或形态的能力。

    多态就是同一个接口,使用不同的实例而执行不同操作,如图所示:

    4029680a21999a23731efbeb5043ce0e.png

    代码实现多态:

    1f5f273b1d1eb2fc9a690a192cbd619b.png

    现在有三个类 Person Student 和 Text  Student继承了Person

    7bd160b64a9ef5259cb1710fcb01bd3b.png

    现在在测试类里 分别new三个对象 可以看到 都是new的Student 但是他的引用类型可以是他的父类和Object

    6771347d5fbb6a051d2e2bfaa097b205.png

    分别调用student的say方法和student2的say方法

    运行:

    35309b4d23f4799551b28fb9d9becd61.png

    可以看到都调用了父类的say方法

    52bff846f10d3b5ad82f69a664b89b3c.png

    现在在Student中重写父类的say方法

    2bc4ff7ebb0a5a30b7540df8284d2e14.png

    在测试类中再次调用student的say和student2的say方法

    运行:

    4502284ef2b1f3d57ac8d695ad4d11eb.png

    可以看到虽然student2引用类型是Person但是并没有执行父类的say方法

    这就完成了多态 虽然都是同一个父亲但是自己完成了不一样的操作

    展开全文
  • 主要介绍了Java数据封装树形结构代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • JAVA封装的外挂SDK

    2012-01-28 12:33:17
    很久以前的收集的,用JAVA封装的外挂开发包,有键盘模拟,鼠标模拟,窗口相关的API
  • Java封装实例

    千次阅读 2019-05-17 15:00:58
    在面向对象程式设计方法中,封装(英语:Encapsulation)是指,一种将抽象性函式接口的实作细节部份包装、隐藏起来的方法。 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。 要...
  • Java 封装基础知识

    2020-08-18 21:50:36
    主要介绍了Java 封装的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
  • Java封装阿里云对象存储OSS-附件资源
  • Java封装树形结构(任意父节点)

    千次阅读 2022-02-17 21:14:32
    Java封装树形结构,可以是任意父节点,不用指定parentId=0等情况
  • Java封装

    千次阅读 2020-03-14 11:25:34
    封装是什么? 封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。...封装是一种信息隐藏技术,在java中通过关键字...
  • 主要介绍了Java封装数组实现包含、搜索和删除元素操作,结合实例形式分析了java针对数组元素的查找、删除、判断等相关操作封装与使用技巧,需要的朋友可以参考下
  • 主要介绍了详解java调用存储过程并封装成map的相关资料,希望通过本文能帮助到大家实现这样的功能,需要的朋友可以参考下
  • java线程池封装

    2018-05-24 16:48:03
    java线程池封装,可自定义线程优先级,使用方便。。。
  • 主要为大家详细介绍了java自定义封装StringUtils常用工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 主要介绍了java封装的概念和实现方法,结合实例形式详细分析了java封装的概念、原理及相关使用技巧,需要的朋友可以参考下
  • JAVA封装JSON数据

    2019-04-09 01:03:37
    NULL 博文链接:https://hzywy.iteye.com/blog/1618266
  • 主要介绍了java方法通用返回结果集封装操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,140,373
精华内容 456,149
关键字:

java封装

java 订阅
友情链接: 第一组课程设计.zip