精华内容
下载资源
问答
  • 2021-03-10 04:14:08

    在面向对象程式设计方法中,封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部份包装、隐藏起来的方法。

    封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。

    要访问该类的代码和数据,必须通过严格的接口控制。

    封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。

    适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。

    封装的优点

    1. 良好的封装能够减少耦合。

    2. 类内部的结构可以自由修改。

    3. 可以对成员变量进行更精确的控制。

    4. 隐藏信息,实现细节。

    java 封装,说白了就是将一大坨公共通用的实现逻辑玩意,装到一个盒子里(class),出入口都在这个盒子上。你要用就将这个盒子拿来用,连接出入口,就能用了,不用就可以直接扔,对你代码没什么影响。

    对程序员来说,使用封装的目的:

    1.偷懒,辛苦一次,后面都能少敲很多代码,增强了代码得复用性

    2.简化代码,看起来更容易懂

    3.隐藏核心实现逻辑代码,简化外部逻辑,并且不让其他人修改,jar 都这么干

    4.一对一,一个功能就只为这个功能服务;避免头发绳子一块用,导致最后一团糟

    更多相关内容
  • java常用工具类封装

    2020-09-14 15:39:16
    java常用工具类封装,线程池、elasticsearch高级客户端集成、word,pdf,excel等文档解析
  • java分页类封装

    2018-09-12 22:46:38
    跟我上面的java底层简易封装配套的。有需要的也可以学习下。
  • 主要为大家详细介绍了java自定义封装StringUtils常用工具,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • JAVA——封装

    千次阅读 多人点赞 2022-04-18 23:11:38
    代码要笑着写——深度剖析内部的那些秘密……

    一、封装的概念

    封装:将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互.

    • 面向对象程序三大特性:封装,继承,多态.
    • 通俗来说,封装就是套壳屏蔽细节.比如:一个电脑真正工作的是CPU,显卡等硬件,而用户只是通过鼠标和键盘等设备来和计算机进行交互.

    在这里插入图片描述

    二、访问修饰限定符

    加粗样式用于控制成员变量和方法的访问权限 , Java中提供了四种访问限定符:

    • public:哪里都可以使用.
    • default: 只能在同一个包中使用.
    • private:只能在自己的类中使用.

    在这里插入图片描述

    三、封装扩展之包

    3.1 包的概念:
    为了更好的管理类,把多个类收集在一起成为一组,称为软件包.通俗来说,其实就是一个文件夹.
    3.2 包的作用:
    在同一个项目中如果想要定义相同名称的类,只要位于不同的包中即可.

    在这里插入图片描述

    3.3 自定义包:

    操作步骤:
    第一步 : 右键 src -> New -> 包(Package):
    在这里插入图片描述
    第二步 : 对话框中输入包名, 例如:
    在这里插入图片描述

    第三步 : 最后我们打开磁盘上的文件路径, IDEA 就自动创建出来了:
    在这里插入图片描述

    四、 内部类(难点)

    内部类也是封装的一种体现:

    在这里插入图片描述

    4.1普通内部类

    概念: 未被static修饰的成员内部类。

    class OutClass {
        private int a;
        static int b;
        int c = 30;
    
        public void methodA() {
            a = 10;
            System.out.println(a);
        }
    
        public void methodB() {
            b= 20;
            System.out.println(b);
        }
        // 普通内部类
        class InnerClass {
            char c;
            public void methodInner() {
                a = 100;
                b = 200;
                methodA();
                methodB();
                c = 97; //优先使用自己
                System.out.println(c);
                System.out.println(OutClass.this.c); //要想访问外部的,外部类名.this
            }
        }
    }
    public class Test2 {
        public static void main(String[] args) {
            OutClass outClass = new OutClass(); //创建外部类对象
            OutClass.InnerClass innerClass = outClass.new InnerClass(); //结论
            innerClass.methodInner();
        }
    }
    
    

    注意事项
    1. 外部类中的任何成员都可以在普通内部类方法中访问 .
    2. 在普通内部类方法中访问同名的成员时,优先访问自己的.
    3. 普通内部类对象必须在先有外部类对象前提下才能创建 .

    4.2静态内部类

     概念:被static修饰的内部成员类称为静态内部类.
    
    class OutClass {
        private int a;
        static int b; //默认
        public void methodA() {
            a = 10;
            System.out.println(a);
        }
        public static void methodB() {
            System.out.println(b);
        }
        // 静态内部类
        static class InnerClass {
            public void methodInner() {
                // a = 10; 不能使用非静态的成员变量或方法
                b = 20;
                System.out.println(b);
                methodB();
            }
        }
    }
    public class Test3 {
        public static void main(String[] args) {
            OutClass.InnerClass innerClass = new OutClass.InnerClass(); //不需要创建对象
            innerClass.methodInner();
        }
    }
    
    

    注意事项
    1. 在静态内部类中只能访问外部类中的静态成员 .
    2. 创建静态内部类对象时,不需要先创建外部类对象,使用类名即可访问.


    与君共勉 : 青春有几年,疫情占三年,去做自己喜欢的事吧.
    在这里插入图片描述

    展开全文
  • 八种基本数据类型分别是:int、short、float、double、long、boolean、byte、char;下面跟随脚本之家小编一起学习java八种基本类型和基本类型封装类
  • Java数据库操作封装类

    2017-07-09 09:33:08
    Java数据库操作封装类,借鉴了各个主流类库的思路。
  • Java jdbc连接mysql 封装类

    千次阅读 2019-05-26 15:50:24
    Java jdbc连接mysql 封装类 开发工具与关键技术:java、 myelipse2017、jdk1.8 作者:Amewin 撰写时间:2019年5月26日 JDBC简介: JDBC全称为java database connectivity,是sun公司指定的java数据库连接技术的...

    Java jdbc连接mysql 封装类

    开发工具与关键技术:java、 myelipse2017、jdk1.8 
    作者:Amewin	
    撰写时间:2019年5月26日
    

    JDBC简介:

    JDBC全称为java database connectivity,是sun公司指定的java数据库连接技术的简称。
    他是sun公司和数据库开发商共同开发出来的独立于DBMS的应用程序接口,它为java程序员进行数据库编程提供了统一的API。

    DBUtil 封装类

    网上有很多的封装类,但总是是或多或少,不够完整。
    比如 数据库连接信息不够安全。没有放入配置文件中,构造器没有私有化。

    代码示例

    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Properties;
    /**
     * mysql jdbc 数据库连接示例
     * 
     * @author CGR
     *
     */
    public class DBUtil {
    	private static String username;//数据库登陆账号
    	private static String password;//数据库登陆密码
    	private static String url;//数据库 url 及端口
    	private static String driver;//驱动类
    	
    	//通常情况下把数据密码放置 项目配置文件中 , 相对于放入类中,更安全一些。
    	static {	//静态初始化块
    		//创建获取配置文件对象。
    		Properties properties = new Properties();
    		try {
    			//利用反射获取对应的字段
    			InputStream in = DBUtil.class.getClassLoader()
    					.getResourceAsStream("jdbc.properties");//获取创建好的配置文件名
    			properties.load(in);
    			username = properties.getProperty("username");
    			password = properties.getProperty("password");
    			url = properties.getProperty("url");
    			driver = properties.getProperty("driver");
    			//加载驱动类
    			Class.forName(driver);
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (ClassNotFoundException e) {
    			e.printStackTrace();
    		}
    	}
    	/**
    	 * 私有化构造器,防止用户重复创建对象,造成资源浪费。
    	 */
    	private DBUtil(){
    		
    	}
    	/**
    	 * 定义一个Connection类型的变量用来存储获取到的Connection实例化对象
    	 */
    	
    	private static Connection con;
    
    	//创建数据库连接对象
    	public static Connection getConnection() {
    	
    		try {
    			con = DriverManager.getConnection(url, username, password);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    		return con;
    	}
    
    	//关闭对应数据流
    	public static void close(Connection con, PreparedStatement ps, ResultSet rs) {
    		//关闭流原则,先创建后关闭
    	
    		if (ps != null) {
    			try {
    				ps.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    		if (rs != null) {
    			try {
    				rs.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    		if (con != null) {
    			try {
    				con.close();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}
    		}
    	}
    }
    

    创建配置文件

    打开elipse 2017 配置 在项目根目录下,ctrl + N
    新建一个text 文本
    然后
    driver=com.mysql.jdbc.Driver
    username=root
    password=root
    url=jdbc:mysql://localhost:3306/test02

    基本配置数据信息
    driver=com.mysql.jdbc.Driver
    username=root
    password=root
    url=jdbc:mysql://localhost:3306/test02

    然后保存
    test02 是数据库名
    root mysql数据密码

    在这里插入图片描述

    选中文件 按F2 重新命名成 尾缀为properties 的配置文件

    在这里插入图片描述

    展开全文
  • 并且在平时开发中会遇到各种各样通用的一些功能,比如对json的处理,对String对象的处理,对Excel文件的处理,MD5加密处理,Bean对象处理等等,这些常用并通用的方法可以被封装成一个个工具如StringUtil,...
  • java连接elasticSearch的工具,只需要传入两个参数 一个是节点名称,一个是ip地址即可返回对象Client
  • 主要介绍了Java实现Http工具封装操作,涉及java针对http请求与响应、远程交互与字符串拼接等操作封装技巧,需要的朋友可以参考下
  • 封装了RabbitMQ的订阅者线程和发布者线程(还有个初始化工厂的连接工具),另外附加一个安卓的使用demo
  • java封装类(一)

    千次阅读 2021-03-16 20:05:18
    java封装类共九个,分别是Boolean,Byte,Short,Integer,Long,Float,Double,Character,Void其中Void对于使用者并无多大意义,也不可以构造任何对象,代码如下:packagejava.lang;public final classVoid {public ...

    java中封装类共九个,分别是Boolean,Byte,Short,Integer,Long,Float,Double,Character,Void

    其中Void对于使用者并无多大意义,也不可以构造任何对象,代码如下:

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    packagejava.lang;public final classVoid {public static final Class TYPE = Class.getPrimitiveClass("void");privateVoid() {}

    }

    View Code

    这几个封装类中,以Boolean类型最简单,Character最复杂,Character个人觉得也是整个java中最复杂的一个类,先说Boolean:

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    packagejava.lang;public final class Boolean implements java.io.Serializable,Comparable{public static final Boolean TRUE = new Boolean(true);public static final Boolean FALSE = new Boolean(false);public static final Class TYPE = Class.getPrimitiveClass("boolean");private final booleanvalue;private static final long serialVersionUID = -3665804199014368530L;public Boolean(booleanvalue) {this.value =value;

    }publicBoolean(String s) {this(toBoolean(s));

    }public static booleanparseBoolean(String s) {returntoBoolean(s);

    }public booleanbooleanValue() {returnvalue;

    }public static Boolean valueOf(booleanb) {return (b ?TRUE : FALSE);

    }public staticBoolean valueOf(String s) {return toBoolean(s) ?TRUE : FALSE;

    }public static String toString(booleanb) {return b ? "true" : "false";

    }publicString toString() {return value ? "true" : "false";

    }public inthashCode() {return value ? 1231 : 1237;

    }public booleanequals(Object obj) {if (obj instanceofBoolean) {return value ==((Boolean)obj).booleanValue();

    }return false;

    }public static booleangetBoolean(String name) {boolean result = false;try{

    result=toBoolean(System.getProperty(name));

    }catch(IllegalArgumentException e) {

    }catch(NullPointerException e) {

    }returnresult;

    }public intcompareTo(Boolean b) {return compare(this.value, b.value);

    }public static int compare(boolean x, booleany) {return (x == y) ? 0 : (x ? 1 : -1);

    }private static booleantoBoolean(String name) {return ((name != null) && name.equalsIgnoreCase("true"));

    }

    }

    View Code

    Boolean实现了Comparable接口,也就是说boolean类型本身是可以比较的,而对于boolean类型而言,在java中认为true是大于false的。示例如下:

    packagedemo.nio;public classBooleanDemo {public static voidmain(String[] args){

    System.out.println(Boolean.compare(true, false));//1 代表大于

    System.out.println(Boolean.compare(false, false));//0 代表等于

    System.out.println(Boolean.compare(true, true));//0 代表等于

    System.out.println(Boolean.compare(false, true));//-1 代表小于

    }

    }

    值得一提的是Boolean的hashcode是两个常数,这就保证了不管从何处new的对象,只要内部的value字段值为true,它的hashcode就是1231,为false就是1237。equals方法完全调用了内部value字段的==操作。所有的封装类型都包含了valueOf的静态函数,并且有

    两个重载版本,分别是基元类型参数和字符串参数。还有一个parse函数,内部可以通过返回Cache中的数据来避免重复的装箱操作。java中对于Boolean的Cache就是 Boolean.TRUE和Boolean.FALSE两个静态字段。它们是公共类型。

    8f900a89c6347c561fdf2122f13be562.png

    961ddebeb323a10fe0623af514929fc1.png

    public classBooleanDemo {public static voidmain(String[] args){

    Boolean b3= Boolean.valueOf(true);

    Boolean b4= Boolean.valueOf("true");

    Boolean b5= Boolean.parseBoolean("true");

    }

    }

    View Code

    展开全文
  • 主要介绍了java语言中封装类,涉及相关代码示例及结果分析,以及封装的好处简单介绍,具有一定借鉴价值,需要的朋友可以参考下
  • 把在页面上的分页操作,在java类用一个对象封装,并且把整个分页的html标签封装在这个对象的String类型的属性里,在需要分页的地方,直接从后台取得这个对象,并把对象中的字符串用页面的内置out对象写到页面上,...
  • java增删改查JDBC封装类(泛型封装),这个是高度封装化的,增删改查,直接用到我的项目中去的。
  • 请求返回数据封装类

    2019-04-23 20:39:23
    该代码封装了网络请求的返回数据用于返回前段
  • Java封装AESUtil

    2018-06-21 11:54:10
    AESUtil Java封装类 AES加密工具类,其中导入的jar包jdk引进去就可以用了,jdk的版本尽量大于1.5
  • Java Logger Logging 封装

    2015-07-03 12:14:32
    Java日志实现。对java.util.logging.Logger的封装,在前人(原文件来自网络)的上完善了文件的控制,使得日志文件可以重入。
  • Java封装

    千次阅读 多人点赞 2019-05-12 21:11:33
    下面以一个员工封装为例介绍封装过程。一个员工的主要属性有姓名、年龄、联系电话和家庭住址。假设员工为 Employee,示例如下: public class Employee { private String name; //姓名 private...
  • 阿里发送短信封装类(AliyunSmsUtils.java)其中工具类中有很多需要替换的地方,阿里发送短信封装类(AliyunSmsUtils.java)阿里发送短信封装类(AliyunSmsUtils.java
  • Elasticsearch的JAVA操作工具,包括增删改查的封装,Elasticsearch的JAVA操作工具,包括增删改查的封装
  • java响应实体类封装

    千次阅读 2020-06-11 10:24:49
    前后端分离的开发模式中,或者与第三方接口交互,需要规范接口响应,下面是我在开发中的封装的一组响应实体
  • 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各种常用的工具类封装 源码

    热门讨论 2013-08-13 18:04:48
    dateUtil fileUtil propertyUtil 反射 json 分页 jdbc struts2 string 一些java开发 常用的工具的总结 封装
  • Java类封装学习心得(1)

    千次阅读 2016-02-27 21:24:41
    Java中有,方法和对象的定义。是对现实中具体事物的描述,中应该有描述该事物属性的对象,也有描述该事物运行方式的方法。这些一起组成了一个通过封装变得完整且安全,外部的方法想要修改中的内容,...
  • Java封装一个怎么实现?

    千次阅读 2021-02-12 17:32:05
    封装将某些东西包装在一起,然后以新的完整形式呈现出来;隐藏属性、方法或实现细节的处理方式称为封装;...使用已经定义好的,创建该对象的过程称为“实例化”。在C语言中,必须要先声明结构体变量,才可...
  • echarts-java类库封装

    2018-01-23 17:59:50
    echarts java 类库封装 echarts java 类库封装 echarts java 类库封装
  • httpRequest封装工具

    2019-03-18 09:51:28
    通过对httpRequest进行封装,可以更好的使用这个请求的方法。包括常用的post,get请求和结果的处理

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,153,193
精华内容 461,277
关键字:

java类的封装

java 订阅
友情链接: 电子相册完成版.zip