第一章 面向对象的基础认知
1-1 介绍类与对象
世间万物皆对象,类是对象的模板。
类和对象的关系:
- 类是抽象的概念,是对象的模板
- 对象是具体的事物,是类的具体实例
面向对象编程:
- 面向对象编程是利用编程方式体现出现实中类和对象
- 从已有现实的类中定义程序中的类(Class)
- 从类(Class)创建(实例化)具体的对象(Objet)
Java创建类的语法:
public class 类名 {
//类的内容
}
例如:
创建类的实例对象:
类名 对象名 = new 类名()
例如:
1-2 成员变量
- 成员变量就是隶属于对象的变量
- 成员变量用于保存对象的静态特征
- 同类型的不同对象拥有相同的成员变量,但彼此独立
例:在java中,对象的属性也称为成员变量,成员变量可以是任意类型,整个类中均是成员变量作用范围。
public class Book {//类
private String name;//String类型的成员变量
public String getName() {//name的Getter方法
return name;
}
public void setName(String name) {//name的Setter方法
this.name=name;//将参数值赋予类中的成员变量
}
}
1-3 方法的作用
什么是方法:方法(Method)是用于完成特定功能的整段代码。
例:
public class MethodSample {
public String isOddNumber(int num) {
if(num%2==0) {
return"偶数";
}else {
return"奇数";
}
}
public static void main(String[] args) {
int a=10;
MethodSample methodSample=new MethodSample();
String r1=methodSample.isOddNumber(a);
System.out.println(a+"是"+r1);
int b=5;
String r2=methodSample.isOddNumber(b);
System.out.println(b+"是"+r2);
}
}
运行结果:
第二章 面向对象特性之封装
2-1 包——Package
- 把功能相似或相关组织在同一个包中
- 包也采用了树形目录的存储方式
- 通过包也可限定类的访问权限
包的命名规范:
- 包采用"逆域名法"进行命名,用”.“分割,单词全部小写
- 标准格式:域名后缀.组织机构名.项目名[.模块名].包的职能
例:
2-2 访问修饰符
Java创建类的语法:
public class 类名{
}
- 访问修饰符用于控制类、成员变量、方法的访问范围
2-3 面对对象特性之封装
面向对象三大特性:封装、继承、多态
封装:
- 封装即隐藏功能的实现细节
- 利用对象与方法是实现封装的直接途径
- 良好的封装让代码更容易阅读与维护
第三章 面向对象特性之继承和多态
3-1 面向对象特性之继承
例:
Telephone电话类作为父类衍生Mobile手机类,手机类可以直接使用电话类的按键属性和拨打电话行为。
class Telephone{//电话类
String button = "button:0~9";//成员属性,10个按键
void call() { //拨打电话功能
System.out.println("开始拨打电话");//输出
}
}
class Mobile extends Telephone{//手机类继承电话类
String screen = "screen:液晶屏";//成员属性,液晶屏幕
void call() { //拨打电话功能
System.out.println("拨打电话");//输出
}
}
public class Demo2 {
public static void main(String[] args) {
Mobile motto = new Mobile();
System.out.println(motto.button);//子类调用父类属性
System.out.println(motto.screen);//子类调用父类没有的属性
motto.call();//子类调用父类方法
}
}
3-2 面对对象特性之多态
- 多态是同一个行为具有多个不同表现形式或形态的能力
例:下面代码中的这种将子类对象视为父类对象的做法称为“向上转型”。
class Shape{} //图形类
class Square extends Shape{} //正方形类继承图形类
class Circular extends Shape{} //圆形类继承图形类
public class Demo5 {
public static void draw(Shape s) { //绘制方法
if(s instanceof Square) { //如果是正方形
System.out.println("绘制正方形");
}else if(s instanceof Circular) { //如果是圆形
System.out.println("绘制圆形");
}else { // 如果是其他类型
System.out.println("绘制父类图形");
}
}
public static void main(String[] args) {
draw(new Shape());
draw(new Square());
draw(new Circular());
}
}
3-3 ArrayList列表类的使用
- ArrayList是Java内置的数据集合,用于存储多个数据
- ArrayList是数组替代品,提供了更多的数据操作方法
- ArrayList几乎是每一个项目中必用的类
public class testList {
public static void main(String[] args) {
//创建ArrayList对象,泛型为String类型
ArrayList<String> list = new ArrayList<>();
//添加元素
list.add("添");
list.add("加");
list.add("元");
list.add("素");
System.out.println(list);
}
}
运行结果:
[添, 加, 元, 素]