面向对象
面向对象思想概述
面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算 机事件的设计思想。它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去 操作实现。
类与对象
- 类:一组相关属性和行为的集合
- 属性:该事物的状态信息
- 行为:就是这个事物的能够做什么
- 对象:是一类事物的具体体现。对象是类的一个实例,具备该类事物的属性和行为。
类的定义
public class ClassName{
//成员变量
//成员方法
}
例如如下学生类的定义
public class Student {
String name;
int age;
public void study(){
System.out.println("hello world");
}
}
对象的使用
创建对象:
类名 对象名 = new 类名();
使用对象访问方法
对象名.成员方法
具体使用如下:
public class Test01_Student {
public static void main(String[] args) {
//创建对象格式:类名 对象名 = new 类名();
Student s = new Student(); System.out.println("s:"+s);
//直接输出成员变量值
System.out.println("姓名:"+s.name);
//给成员变量赋值
s.name = "赵丽颖";
//调用成员方法
s.study();
}
三大特征-封装
封装概述
封装可以被认为是一个保护屏障,防止该类的代码和数据被其他类随意访问。要访问该类的数据,必须通过指定的 方式。适当的封装可以让代码更容易理解与维护,也加强了代码的安全性。
封装的步骤
1.使用private
关键字来修饰成员变量
2.对需要访问的变量提供对应的getter,setter方法
封装的操作
封装一个对象具体操作如下:
public class User {
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
三大特征-继承
继承概述
子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接 访问父类中的非私有的属性和行为。
继承格式
通过extends
关键字可以声明一个父类
格式如下:
class 子类 extends 父类{
}
演示如下:
public class CmsPage {
String siteId;
private String pageId;
public void a(){
System.out.println("hello");
}
}
class CmsPageExt extends CmsPage {
private String htmlValue;
}
继承后的特点
继承后子类拥有父类非私有属性和方法
即可如下适用:
CmsPageExt cmsPageExt = new CmsPageExt();
System.out.println(cmsPageExt.id);
cmsPageExt.a();
三大特征-多态
概述
- 多态:同一行为具有不同的表现形式
前提:
- 继承或者实现
- 方法的重写
- 父类引用指向子类对象
多态的体现
代码如下:
//父类
public abstract class Animal {
public abstract void eat();
}
//子类1
class Cat extends Animal {
public void eat() {
System.out.println("吃鱼");
}
}
// 子类2
class Dog extends Animal {
public void eat() {
System.out.println("吃骨头");
}
}
public static void main(String[] args){
Animal a1 = new Cat();
/ /调用的是 Cat 的
eat a1.eat();
Animal a2 = new Dog();
// 调用的是 Dog 的 eat
a2.eat()
}