第一章 面向对象的基础认知
1-1 介绍类与对象
世间万物皆对象,类是对象的模板。
类和对象的关系:
类是抽象的概念,是对象的模板
对象是具体的事物,是类的具体实例
面向对象编程:
面向对象编程是利用编程方式体现出现实中类和对象
从已有现实的类中定义程序中的类(Class)
从类(Class)创建(实例化)具体的对象(Objet)
Java创建类的语法:
public class 类名 {
//类的内容
}
例如:
创建类的实例对象:
类名 对象名 = new 类名()
例如:
1-2 成员变量
- 成员变量就是隶属于对象的变量
- 成员变量用于保存对象的静态特征
- 同类型的不同对象拥有相同的成员变量,但彼此独立
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-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); } }