03_java基础(七)之面向对象

16.封装查询结果对象

  封装简单粗暴的理解就是:假设你在超市买苹果,买一个你可以一个手拿走,买两个你可以用两只手拿走,但是如果买了20个勒,咋办勒,那就用一个袋子装起来!这就 封装思想。

      1.封装一个产品对象 Product.java

 1 package com.day01.station.model;
 2 
 3 /**
 4  * Created by Administrator on 2018/2/9.
 5  */
 6 public class Product {
 7     /**
 8      * 类里面有三样
 9      *   1.字段
10      *   2.构造方法
11      *   3.普通方法
12 
13      */
14 
15     /**
16      * java里面取名称  规则   见名知意,驼峰命名 (当前来说除了类使用首字母大写的驼峰命名,其他都是首字母小写的驼峰命名)
17      *
18      * 封装一个字段
19      * private(权限)   Integer(类型  int)  id(名称)
20      */
21     private  Integer id;  //id
22     private  String productName;  //产品名称
23     private  Integer salePrice;
24     //提供get  set 方法
25 
26 
27     public Integer getId() {
28         return id;
29     }
30 
31 
32     public void setId(Integer id) {
33         this.id = id;
34     }
35 
36     public String getProductName() {
37         return productName;
38     }
39 
40     public void setProductName(String productName) {
41         this.productName = productName;
42     }
43 
44     public Integer getSalePrice() {
45         return salePrice;
46     }
47 
48     public void setSalePrice(Integer salePrice) {
49         this.salePrice = salePrice;
50     }
51 
52     // alt + insert
53 
54     @Override
55     public String toString() {
56         return "Product{" +
57                 "id=" + id +
58                 ", productName='" + productName + '\'' +
59                 ", salePrice=" + salePrice +
60                 '}';
61     }
62 }

   2.查询结果使用对象接收

 1  //查询
 2     public Product  query(int id) {
 3         System.out.println("------我是查询方法----------");
 4         Product product = new Product();//袋子
 5         try {
 6             //1.加载
 7             Class.forName("com.mysql.jdbc.Driver");
 8             //2.连接
 9             Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station_demo", "root", "admin");
10             //3.创建编译语句
11             String sql = "SELECT id,product_name,sale_price FROM product WHERE id=?";
12             PreparedStatement preparedStatement = connection.prepareStatement(sql);
13             preparedStatement.setInt(1,id);
14             //4.执行语句
15             ResultSet resultSet = preparedStatement.executeQuery();
16             //解析结果
17              while (resultSet.next()){//如果有在执行里面
18                  int id1 = resultSet.getInt("id");
19                  String productName = resultSet.getString("product_name");
20                  int salePrice = resultSet.getInt("sale_price");
21                  //封装  袋子
22                      //
23                  product.setId(id1);
24                  product.setProductName(productName);
25                  product.setSalePrice(salePrice);
26              }
27             //5.释放资源
28             resultSet.close();
29             preparedStatement.close();
30             connection.close();
31         } catch (Exception e) {
32             e.printStackTrace();
33         }
34         return product;
35     }

17.面向对象之封装

        1.对用户进行封装

 1 package com.day01.station.model;
 2 
 3 /**
 4  * Created by Administrator on 2018/2/9.
 5  *
 6  * 用户的行为: 说   ==>方法表示   say()
 7  *
 8  * 用户的属性(字段):   年龄    性别     地址   姓名
 9  *
10  */
11 public class LoginUser {
12     // 用户的属性(字段):   年龄    性别     地址   姓名
13 
14     private     Integer  age;
15     private     String   gender;  // 男,女 ,妖
16 
17     //私有化为 不能直接访问 ,那么间接访问  ==>提供一个方法
18     //提供一个设定值的方法
19     public void  setGender(String gender){
20         this.gender=gender;
21     }
22 
23     public String getGender(){
24         return gender;
25     }
26 
27     public Integer getAge() {
28         return age;
29     }
30 
31     public void setAge(Integer age) {
32         this.age = age;
33     }
34 
35     //方法
36     public void say(){
37         System.out.println("--------我是一个用户------");
38     }
39 }
View Code

  2.测试封装后的对象

 1 package com.day01.station.testDao;
 2 
 3 import com.day01.station.model.LoginUser;
 4 
 5 import org.junit.Test;
 6 
 7 /**
 8  * Created by Administrator on 2018/2/9.
 9  */
10 public class TestLoginUser {
11     @Test
12     public void test4(){
13         //1.拿到对象
14         LoginUser loginUser = new LoginUser();
15            //2.设置年龄
16         loginUser.setAge(18);
17         loginUser.setGender("男");
18         //3.取出来
19         Integer age = loginUser.getAge();
20         String gender = loginUser.getGender();
21         System.out.println(" age="+age+"   gender="+gender);
22 
23         System.out.println("loginUser=  "+loginUser);
24     }
25     @Test
26     public void test3(){
27         //1.拿到对象
28         LoginUser loginUser = new LoginUser();
29        //2.已经把 性别 gender私有化,不能直接访问 ,间接通过方法访问
30        // loginUser.gender="男"  不能这样访问
31         loginUser.setGender("男");
32         //  String gender=loginUser.gender;  //不能这样取,  提供一个方法间接取出
33         String gender = loginUser.getGender();
34         System.out.println("  gender=="+gender);
35 
36         System.out.println("loginUser=  "+loginUser);
37     }
38     @Test
39     public void test2(){
40         //1.拿到对象
41         LoginUser loginUser = new LoginUser();
42          //2.给性别赋值
43       //  loginUser.gender="空间上的方便快捷";
44         //3.取值
45       //  String gender=loginUser.gender;
46        // System.out.println(" gender =  "+gender);
47     }
48     @Test
49     public void test1(){
50         //1.拿到对象
51         LoginUser loginUser = new LoginUser();
52         //2.调用方法
53         loginUser.say();
54         //3.使用属性
55       //  loginUser.age=28;//赋值
56         System.out.println("=loginUser=="+loginUser);
57       // Integer age = loginUser.age;
58       //  System.out.println("==age=="+age);
59     }
60 }
View Code

 

18.构造方法

     

  测试:

  

 

19.面向对象之继承

  

    父类代码

 1 package com.day01.station.model;
 2 
 3 /**
 4  * Created by Administrator on 2018/3/22.
 5  */
 6 public class Base {
 7     private Integer id;
 8     private String type; //类型
 9     private String state; //状态
10     private String createTime;
11     private String updateTime;
12 
13     public Integer getId() {
14         return id;
15     }
16 
17     public void setId(Integer id) {
18         this.id = id;
19     }
20 
21     public String getType() {
22         return type;
23     }
24 
25     public void setType(String type) {
26         this.type = type;
27     }
28 
29     public String getState() {
30         return state;
31     }
32 
33     public void setState(String state) {
34         this.state = state;
35     }
36 
37     public String getCreateTime() {
38         return createTime;
39     }
40 
41     public void setCreateTime(String createTime) {
42         this.createTime = createTime;
43     }
44 
45     public String getUpdateTime() {
46         return updateTime;
47     }
48 
49     public void setUpdateTime(String updateTime) {
50         this.updateTime = updateTime;
51     }
52 }
View Code

 

     子类代码

 1 package com.day01.station.model;
 2 
 3 /**
 4  * Created by Administrator on 2018/2/9.
 5  */
 6 public class Product extends Base {
 7 
 8     private String productName;  //产品名称
 9     private Integer salePrice;
10 
11     //提供get  set 方法
12     public String getProductName() {
13         return productName;
14     }
15 
16     public void setProductName(String productName) {
17         this.productName = productName;
18     }
19 
20     public Integer getSalePrice() {
21         return salePrice;
22     }
23 
24     public void setSalePrice(Integer salePrice) {
25         this.salePrice = salePrice;
26     }
27 }
View Code

 

posted @ 2018-03-23 10:09  李东平|一线码农  阅读(561)  评论(0编辑  收藏  举报