java封装

面向对象是一种思想,面向对象是将功能等通过对象来实现,将功能封装进对象之中,让对象去实现具体的细节;

举例:
我去奶茶店买一杯,我需要找到一家奶茶店,并向店员提出我的需求。在这里我只需要告诉店员我们要买什么奶茶就好了,不需要知道店员制作奶茶的过程

其中封装是面向对象的一大特征

1.java的封装性即是信息隐藏,把对象的属性和行为结合成一个相同的独立单体,并尽可能地隐藏对象的内部细节。
例如:店员的姓名,年龄,性别等属性,和做什么种类的奶茶等行为。结合到一起就能代表店员这一类人。并且可以把奶茶的制作方法这些内容用private关键字隐藏起来。

public class employee {

    public void create(){
        System.out.println("这是一杯烧仙草");
    }
}

我们调用对象的方法,只知道它给我做了一杯奶茶,但是如何实现我们是不知道的

2.提高了代码的安全性
例如:如果不对数据进行分装,对象可以随意对属性赋值

public class employee {
    public String name ;
    public int age ;
}

我们可以直接通过对象来对属性赋值,当我们输入一个age为-23时的数据时,肯定是不符合要求的。
为了保证代码安全,我们需要把成员变量设置为私有成员变量,提供setter和getter方法。对象想要获取属性,只能通过我们提供的公共方法,在方法里我可以判断你传入的值是否复合要求

public class employee {
    private String name ;
    private int age ;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age>=18&&age<45){
            this.age = age;
        }else {
            System.out.println("年龄有错");
        }
    }
}

3.高内聚,低耦合
我们发现封装是对属性和方法的封装,这里并不涉及到其他的对象,高度内聚
只是暴露一部分的方法在外面,低耦合

4.提高了代码的复用性
封装完了之后,以后当我们需要再用到这些方法的时候只需要创建对象来调用即可。做到了一劳永逸

成员属性和成员变量的区别
Java类的成员属性和成员变量有所区别,成员属性是类所表述事物的共同特征,成员属性不能被外部直接访问和修改,必须通过类提供的get和set方法访问和修改成员属性。成员变量一般用于类内部存储临时数据使用,不需要提供get和set方法。

经典java数据库封装类,package com.bjsxt.shopping.util; import java.sql.*; public class DB { public static Connection getConn() { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost/shopping?user=root&password=root"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; } public static PreparedStatement prepare(Connection conn, String sql) { PreparedStatement pstmt = null; try { if(conn != null) { pstmt = conn.prepareStatement(sql); } } catch (SQLException e) { e.printStackTrace(); } return pstmt; } public static PreparedStatement prepare(Connection conn, String sql, int autoGenereatedKeys) { PreparedStatement pstmt = null; try { if(conn != null) { pstmt = conn.prepareStatement(sql, autoGenereatedKeys); } } catch (SQLException e) { e.printStackTrace(); } return pstmt; } public static Statement getStatement(Connection conn) { Statement stmt = null; try { if(conn != null) { stmt = conn.createStatement(); } } catch (SQLException e) { e.printStackTrace(); } return stmt; } /* public static ResultSet getResultSet(Connection conn, String sql) { Statement stmt = getStatement(conn); ResultSet rs = getResultSet(stmt, sql); close(stmt); return rs; } */ public static ResultSet getResultSet(Statement stmt, String sql) { ResultSet rs = null; try { if(stmt != null) { rs = stmt.executeQuery(sql); } } catch (SQLException e) { e.printStackTrace(); } return rs; } public static void executeUpdate(Statement stmt, String sql) { try { if(stmt != null) { stmt.executeUpdate(sql); } } catch (SQLException e) { e.printStackTrace(); } } public static void close(Connection conn) { try { if(conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } public static void close(Statement stmt) { try { if(stmt != null) { stmt.close(); stmt = null; } } catch (SQLException e) { e.printStackTrace(); } } public static void close(ResultSet rs) { try { if(rs != null) { rs.close(); rs = null; } } catch (SQLException e) { e.printStackTrace(); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值