16.封装查询结果对象

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

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

 package com.day01.station.model;

 /**
* Created by Administrator on 2018/2/9.
*/
public class Product {
/**
* 类里面有三样
* 1.字段
* 2.构造方法
* 3.普通方法 */ /**
* java里面取名称 规则 见名知意,驼峰命名 (当前来说除了类使用首字母大写的驼峰命名,其他都是首字母小写的驼峰命名)
*
* 封装一个字段
* private(权限) Integer(类型 int) id(名称)
*/
private Integer id; //id
private String productName; //产品名称
private Integer salePrice;
//提供get set 方法 public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getProductName() {
return productName;
} public void setProductName(String productName) {
this.productName = productName;
} public Integer getSalePrice() {
return salePrice;
} public void setSalePrice(Integer salePrice) {
this.salePrice = salePrice;
} // alt + insert @Override
public String toString() {
return "Product{" +
"id=" + id +
", productName='" + productName + '\'' +
", salePrice=" + salePrice +
'}';
}
}

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

  //查询
public Product query(int id) {
System.out.println("------我是查询方法----------");
Product product = new Product();//袋子
try {
//1.加载
Class.forName("com.mysql.jdbc.Driver");
//2.连接
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/station_demo", "root", "admin");
//3.创建编译语句
String sql = "SELECT id,product_name,sale_price FROM product WHERE id=?";
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1,id);
//4.执行语句
ResultSet resultSet = preparedStatement.executeQuery();
//解析结果
while (resultSet.next()){//如果有在执行里面
int id1 = resultSet.getInt("id");
String productName = resultSet.getString("product_name");
int salePrice = resultSet.getInt("sale_price");
//封装 袋子
//装
product.setId(id1);
product.setProductName(productName);
product.setSalePrice(salePrice);
}
//5.释放资源
resultSet.close();
preparedStatement.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
return product;
}

17.面向对象之封装

1.对用户进行封装

 package com.day01.station.model;

 /**
* Created by Administrator on 2018/2/9.
*
* 用户的行为: 说 ==>方法表示 say()
*
* 用户的属性(字段): 年龄 性别 地址 姓名
*
*/
public class LoginUser {
// 用户的属性(字段): 年龄 性别 地址 姓名 private Integer age;
private String gender; // 男,女 ,妖 //私有化为 不能直接访问 ,那么间接访问 ==>提供一个方法
//提供一个设定值的方法
public void setGender(String gender){
this.gender=gender;
} public String getGender(){
return gender;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} //方法
public void say(){
System.out.println("--------我是一个用户------");
}
}

  2.测试封装后的对象

 package com.day01.station.testDao;

 import com.day01.station.model.LoginUser;

 import org.junit.Test;

 /**
* Created by Administrator on 2018/2/9.
*/
public class TestLoginUser {
@Test
public void test4(){
//1.拿到对象
LoginUser loginUser = new LoginUser();
//2.设置年龄
loginUser.setAge(18);
loginUser.setGender("男");
//3.取出来
Integer age = loginUser.getAge();
String gender = loginUser.getGender();
System.out.println(" age="+age+" gender="+gender); System.out.println("loginUser= "+loginUser);
}
@Test
public void test3(){
//1.拿到对象
LoginUser loginUser = new LoginUser();
//2.已经把 性别 gender私有化,不能直接访问 ,间接通过方法访问
// loginUser.gender="男" 不能这样访问
loginUser.setGender("男");
// String gender=loginUser.gender; //不能这样取, 提供一个方法间接取出
String gender = loginUser.getGender();
System.out.println(" gender=="+gender); System.out.println("loginUser= "+loginUser);
}
@Test
public void test2(){
//1.拿到对象
LoginUser loginUser = new LoginUser();
//2.给性别赋值
// loginUser.gender="空间上的方便快捷";
//3.取值
// String gender=loginUser.gender;
// System.out.println(" gender = "+gender);
}
@Test
public void test1(){
//1.拿到对象
LoginUser loginUser = new LoginUser();
//2.调用方法
loginUser.say();
//3.使用属性
// loginUser.age=28;//赋值
System.out.println("=loginUser=="+loginUser);
// Integer age = loginUser.age;
// System.out.println("==age=="+age);
}
}

18.构造方法

  

  测试:

  

19.面向对象之继承

  

    父类代码

 package com.day01.station.model;

 /**
* Created by Administrator on 2018/3/22.
*/
public class Base {
private Integer id;
private String type; //类型
private String state; //状态
private String createTime;
private String updateTime; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getType() {
return type;
} public void setType(String type) {
this.type = type;
} public String getState() {
return state;
} public void setState(String state) {
this.state = state;
} public String getCreateTime() {
return createTime;
} public void setCreateTime(String createTime) {
this.createTime = createTime;
} public String getUpdateTime() {
return updateTime;
} public void setUpdateTime(String updateTime) {
this.updateTime = updateTime;
}
}

    子类代码

 package com.day01.station.model;

 /**
* Created by Administrator on 2018/2/9.
*/
public class Product extends Base { private String productName; //产品名称
private Integer salePrice; //提供get set 方法
public String getProductName() {
return productName;
} public void setProductName(String productName) {
this.productName = productName;
} public Integer getSalePrice() {
return salePrice;
} public void setSalePrice(Integer salePrice) {
this.salePrice = salePrice;
}
}

03_java基础(七)之面向对象的更多相关文章

  1. python3.x 基础七:面向对象进阶

    类的高级方法: 1.静态方法:在类方法前增加关键字@staticmethod,将普通方法变成静态方法,不能再次传值,不能访问实例变量或者类变量,与类的关系仅仅是通过类名进行调用 2.类方法:在类方法前 ...

  2. C#基础总结之八面向对象知识点总结-继承与多态-接口

    .方法深入讲解(返回值,形参与实参) 方法 public int getName(int i,int j) { int sum = i + j; return sum; } .利用泛型存储对象数据 . ...

  3. C#基础总结之七面向对象知识点总结1

    class Class //定义一个类 名字是Class { ; string NAME; string deptName; ; //如果是常量 只能获取,不能赋值 public string Nam ...

  4. Bootstrap <基础七>按钮

    任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观.但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示: 以下样式可用于<a>, <butto ...

  5. [.net 面向对象编程基础] (2) 关于面向对象编程

    [.net 面向对象编程基础]  (2)  关于面向对象编程 首先是,面向对象编程英文 Object-Oriented Programming 简称 OOP 通俗来说,就是 针对对象编程的意思 那么问 ...

  6. Java面试题精选(一)基础概念和面向对象

    --   基础概念和面向对象   --      全程将为大家剖析几大部分内容,由于学习经验有限,望大家谅解并接受宝贵的意见: 基础概念部分     ★★   : 常出现的高频率单词的区别理解(异常. ...

  7. C#_02.16_基础七_.NET表达式&运算符

    C#_02.16_基础七_.NET表达式&运算符 一.字面量: 字面量和变量的关系来理解字面量会比较简单: 因此字面量是源代码中键入已知的(我们知道它是多少的)值.也可以理解是等号右边的非创建 ...

  8. {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)

    Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...

  9. Java基础七-正则表达式

    Java基础七-正则表达式 一.定义: 特定的符号的组合 二.作用: 用于操作字符串数据 三.优缺点 简化代码,但是阅读性差 四.引入 4.1 问题 判断一个号码是否是QQ号? 不是零开头 6-15位 ...

  10. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

随机推荐

  1. Js中,Map对象的使用

    1.定义 键/值对的集合. 2.语法 mapObj = new Map() 3.备注 集合中的键和值可以是任何类型.如果使用现有密钥向集合添加值,则新值会替换旧值. 4.属性 构造函数 :指定创建映射 ...

  2. 最全spring boot视频系列,你值得拥有

    ================================== 从零开始学Spring Boot视频 ================================== àSpringBoot ...

  3. jxl 的详细用法说明

    package example_1; import java.io.File; import java.io.IOException; import java.io.ObjectInputStream ...

  4. LeetCode 失败的尝试 10. regular expression matching & 正则

    Regular Expression Matching 看到正则就感觉头大,因为正则用好了就很强大.有挑战的才有意思. 其实没有一点思路.循环的话,不能一一对比,匹配模式解释的是之前的字符.那就先遍历 ...

  5. oracle insert 返回ID

    create or replace procedure getid(v_id out number)as  v_sql varchar2(500); begin v_sql:='insert into ...

  6. ftp的安全问题

    ftp漏洞http://www.4hou.com/technology/3507.html

  7. 《锋利的JQuery》中重写超链接与图片提示效果

    代码部分: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <met ...

  8. EditText获取焦点

    这三个属性必须同时设置: private EditText passwde = null; passwde.setFocusable(true); passwde.setFocusableInTouc ...

  9. java接口的学习笔记

    1接口 接口是一个特殊的类,在JAVA中,接口是由抽象方法和全局敞亮组成. 在JAVA忠使用INTERFACE定义接口. public class InterfaceDemo { public sta ...

  10. Python linux 上的管理工具 pyenv 安装, pip 使用, python项目(版本分割, 项目分割, 虚拟环境创建)

    01: 假设你有一个最小环境安装的 centos-6.x 的linux操作系统 02: 安装 git => yum -y install git 03: 安装依赖 => yum -y in ...