03_java基础(七)之面向对象
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基础(七)之面向对象的更多相关文章
- python3.x 基础七:面向对象进阶
类的高级方法: 1.静态方法:在类方法前增加关键字@staticmethod,将普通方法变成静态方法,不能再次传值,不能访问实例变量或者类变量,与类的关系仅仅是通过类名进行调用 2.类方法:在类方法前 ...
- C#基础总结之八面向对象知识点总结-继承与多态-接口
.方法深入讲解(返回值,形参与实参) 方法 public int getName(int i,int j) { int sum = i + j; return sum; } .利用泛型存储对象数据 . ...
- C#基础总结之七面向对象知识点总结1
class Class //定义一个类 名字是Class { ; string NAME; string deptName; ; //如果是常量 只能获取,不能赋值 public string Nam ...
- Bootstrap <基础七>按钮
任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观.但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示: 以下样式可用于<a>, <butto ...
- [.net 面向对象编程基础] (2) 关于面向对象编程
[.net 面向对象编程基础] (2) 关于面向对象编程 首先是,面向对象编程英文 Object-Oriented Programming 简称 OOP 通俗来说,就是 针对对象编程的意思 那么问 ...
- Java面试题精选(一)基础概念和面向对象
-- 基础概念和面向对象 -- 全程将为大家剖析几大部分内容,由于学习经验有限,望大家谅解并接受宝贵的意见: 基础概念部分 ★★ : 常出现的高频率单词的区别理解(异常. ...
- C#_02.16_基础七_.NET表达式&运算符
C#_02.16_基础七_.NET表达式&运算符 一.字面量: 字面量和变量的关系来理解字面量会比较简单: 因此字面量是源代码中键入已知的(我们知道它是多少的)值.也可以理解是等号右边的非创建 ...
- {Django基础七之Ajax} 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解)
Django基础七之Ajax 本节目录 一 Ajax简介 二 Ajax使用 三 Ajax请求设置csrf_token 四 关于json 五 补充一个SweetAlert插件(了解) 一 Ajax简介 ...
- Java基础七-正则表达式
Java基础七-正则表达式 一.定义: 特定的符号的组合 二.作用: 用于操作字符串数据 三.优缺点 简化代码,但是阅读性差 四.引入 4.1 问题 判断一个号码是否是QQ号? 不是零开头 6-15位 ...
- Java基础教程:面向对象编程[2]
Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...
随机推荐
- OpenGL秒安装及显示
快毕业了,狂补OpenGL中.... 想当初安装opencv那么麻烦,现在openGL几秒钟就安装好了 注意:这里前提是你建立好了工程,如果连工程都不会建立~~GG 测试代码: 复制到工程进行测试! ...
- mysql数据库创建编码及排序
编码 utf-8 排序 utf8_general_ci 不区分大小写,这个你在注册用户名和邮箱的时候就要使用. utf8_general_cs 区分大小写,如果用户名和邮箱用这个 就会照成不良后果 u ...
- IntelliJ IDEA tomcat 热部署
1.点击idea中tomcat设置 2.点击Deployment查看Deploy at the server startup 中tomcat运行的包是 xxxx:war 还是其他,如果是xxx:war ...
- Mybatis十( mybatis其他使用)
1.批量执行 public void addUser(User user); <insert id="addUser" parameterType="model.U ...
- 2. springboot启动报错:Field userMapper in com.service.UserService required a bean of type 'com.dao.UserMapper' that could not be found.
报错信息: 2018-06-25 14:26:17.103 WARN 49752 --- [ restartedMain] ationConfigEmbeddedWebApplicationCon ...
- 2. oracle创建表空间、用户并设置默认表空间、授权
1.创建用户并设置默认表空间 create tablespace tablespacename datafile 'tablespacename.dbf' size 200m autoextend o ...
- Python基础6 面向对象编程
本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做<人狗大战> ...
- 白鹭引擎 - 资源文件的加载 ( RES, loadConfig, loadGroup )
class Main extends egret.DisplayObjectContainer { public constructor() { super(); this.addEventListe ...
- C# 实现保留两位小数的方法
1.Math.Round(0.333333,2);//按照四舍五入的国际标准 2.double dbdata=0.335333; string str1=String.Format("{0: ...
- [记录] 解决img的1px空白问题
第一种解决方案:把img变成块元素:display:block: 第二种解决方案:修改一下它的垂直对齐方式:vertical-align:middle: 第三种解决方案:使用浮动,让他漂浮起来:flo ...