java面向对象编程 (封装 继承 多态)
# 编程思想的对比
- 面向过程
从头编写到尾,中间穿插一些方法
更接近计算机的运行方式
所有的事情都亲力亲为(劳动者思维 自给自足)
适合小项目 代表语言 c
- 面向对象
更接近人类的思维(懒惰)
比起面向过程,更注重谁能帮我做这件事
适合中大型项目,代表语言:java c++ python js php
# 面向对象的含义
大量/经常性使用“对象”进行编程
1.使用java提供的对象
2.使用自定义的对象进行编程
# 对象的作用
1.存储数据(成员属性)
2.实现功能(成员方法)
# 自定义对象
- 自定义类/模板
- 成员属性
修饰符 数据变量 属性名;
public int id;
- 构造方法
作用:1.创建对象 2.初始化数据
特殊点:绝对没有返回值的位置,方法名就是类名
- 成员方法
绝对没有static,属于对象
标准调用方式 对象名.方法名()
- 根据模板创建对象
- 创建对象的标准格式
类名 对象名 = new 构造方法();
- 存储数据
对象名.属性 = 值;
- 实现功能
对象名.方法名();
# 方法的重载
出现在同一个类中,方法名相同
参数列表不同(数量不同 or 数据类型不同 or 顺序不同);
与返回值无关
# 对象和数组的结合
- 对象中存数组
在类的成员属性中定义数组的类型
在使用的时候,先创建数组,再赋值
展示数组内容不需要亲自去打印和拼接,可以考虑编写成成员方法,
然后使用对象调用此方法即可。
例:
public String title;
public String name;
public String[] arr;
public ToolHero(String[] a) {
arr=a;
}
public void heros() {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]+",");
}
System.out.println();
}
ToolHero a1 = new ToolHero(new String[] { "寒冰射手-艾希","德玛西亚之力-盖伦","光辉女郎-拉克丝","齐天大圣-孙悟空"});
ToolHero a2 = new ToolHero(new String[] {"ADC-辅助","上单","中单-辅助","上单-打野"});
a1.arr= new String[] { "寒冰射手-艾希","德玛西亚之力-盖伦","光辉女郎-拉克丝","齐天大圣-孙悟空"};
a2.arr=new String[] {"ADC-辅助","上单","中单-辅助","上单-打野"};
- 数组中存数组
- 数组中存整数 int[]
- 数组中存字符串 String[]
- 对象数组 Student[] 类名[]
今日心得:学习的比较混乱,思路没理清