-
面向过程思想
-
步骤清晰简单,第一步做什么,第二步做什么
-
面向过程适合处理一些较为简单的问题
-
-
面向对象思想
-
物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索
-
面向对象适合处理复杂的问题,适合处理需要多人协作的问题
-
-
对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理
什么是面向对象
-
面向对象编程(Object-Oriented Programming,OOP)
-
面向对象编程的本质就是:以类的方式组织代码,以对象的形式封装数据
-
抽象-----将多个目标的相似点抽取出来
-
三大特性:
-
封装:将数据保存起来,通过留下的特定接口调用
-
继承:子类继承父类的数据方法等
-
多态:同一个事物会衍生出各种不同形态
-
-
从认识论角度考虑是先有对象后有类。对象,是具体的事务。类是抽象的,是对对象的抽象
-
从代码运行角度考虑是先有类后有对象。类是对象的模板
回顾方法及加深
-
方法的定义
-
修饰符
-
返回类型
-
break:跳出switch,结束当前循环 return:结束方法,返回一个值
-
方法名:注意规范 驼峰命名法 见名知意
-
参数列表:(参数类型 参数名) ,可变参数
-
异常抛出
-
import java.io.IOException;
?
public class Demo01 {
public static void main(String[] args) {
?
}
/*
修饰符 返回值类型 方法名(参数...){
//方法体
return 返回值
}
*/
public String sayHello(){
return "hello,world";
}
public int max(int a,int b ){
return a>b ? a:b;
}
//异常抛出 读文件 抛出IO异常
public void readFile(String file) throws IOException{
}
}
-
方法的调用
-
静态方法
-
非静态方法
public class Demo02 {
public static void main(String[] args) {
Student.say();
//实例化这个类 new
//对象类型 对象名 = 对象值
Student xiaoMing = new Student();
xiaoMing.say2();
}
//静态方法 和类一起加载的
public static void a(){
// b();报错
}
//非静态方法 类实例化之后才存在
public void b(){
a();
}
}
//学生类
public class Student {
?
//静态方法
public static void say(){
System.out.println("学生说话了");
}
//非静态方法 为了更好地封装,防止外部调用
public void say2(){
System.out.println("学生说话了2");
}
}-
形参和实参
-
值传递和引用传递
//值传递
public class Demo03 {
public static void main(String[] args) {
int a = 1;
System.out.println(a);//1
?
Demo03.change(a);//传递的不是变量a,而是a的值1
System.out.println(a);//1
}
?
public static void change(int a){
a = 10;
}
}
//引用传递:对象 本质还是值传递
public class Demo04 {
public static void main(String[] args) {
Person xiaoMing = new Person();//实例化一个Person类
System.out.println(xiaoMing.name);//null
Demo04.change(xiaoMing);
System.out.println(xiaoMing.name);//小黑
}
?
public static void change(Person a){
//a是一个对象,指向的是 Person xiaoMing = new Person();这是一个具体的人 可以改变属性
a.name = "xiaoHei";
}
}
?
//定义了一个Person类,有一个属性:name
class Person{
String name;
}-
this关键字:代表当前这个类
-