Day30-20260126
单词
throws:抛出
Exception:异常
面向对象编程OOP
- 初识面向对象
- 方法回顾和加深
- 对象的创建分析
- 面向对象三大特性
- 抽象类和接口
- 内部类及OOP实战
面向过程&面向对象
面向过程思想
- 步骤清晰简单,第一步做什么,第二步做什么......
- 面对过程适合处理一些较为简单的问题
面向对象思想
- 物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。
- 面向对象适合处理复杂的问题,适合处理需要多人协作的问题!
对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。
笔记:
属性+方法=类
什么是面向对象
面向对象编程(Object-Oriented Programming,OOP)
面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据。
抽象
三大特性:
- 封装
- 继承
- 多态
从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象
从代码运行角度考虑是先有类后有对象。类是对象的模板。
回顾方法及加深
方法的定义
-
修饰符
-
返回类型
-
break和return的区别
-
break:
- 跳出switch语句
- 结束整个循环
-
return:
-
方法结束了
-
返回值与返回值类型必须相同
-
后面可以不带参数
-
结束方法,返回一个结果
-
//return:结束方法,返回一个结果 public String sayHello(){ return "hello,world"; } public void print(){ return; } public void hello(){ return;
-
-
-
方法名:注意规范 见名知意
-
参数列表:(参数类型,参数名)...
-
异常抛出:疑问,后面讲解
package com.oop.demo01;
import java.io.IOException;
public class Demo01 {
//main 方法
public static void main(String[] args) {
}
/*
修饰符 返回值类型 方法名(方法参数...){
//方法体
return 返回值;
}
*/
//return:结束方法,返回一个结果
public String sayHello(){
return "hello,world";
}
public void print(){
return;
}
public void hello(){
return;
}
public int max(int a,int b){
return a>b ? a : b;//三元运算符,如果a>b,结果为a,否则为b
}
//数组下标越界:Arrayindexoutofbounds
//异常抛出,throws:抛出。Exception:异常
public void readFile(String file) throws IOException{
}
}
方法的调用
-
静态方法
-
非静态方法
-
package com.oop.demo01; public class Demo02 { //静态方法 static //非静态方法 public static void main(String[] args) { //类名。方法名 Student.say();//say方法是static的 //Student.say1();//say1方法没有static会报错 //实例化这个类 new new Student().say1();//一般写作下行样式 Student student = new Student();//对象类型 对象名 = 对象值 student.say1();//new 后可以调用非静态方法(无static的) } //a与b都是普通的方法,没有静态的方法,a是可以直接调用b的 public void a(){ b(); } public void b(){} //a与b都是静态的方法,a也可以直接调用b的 public static void a1(){ b1(); } public static void b1(){} //a是静态的方法,b不是静态的方法,a不可以直接调用b的 //原因:static和类一起加载的,时间早 public static void a2(){ //b2(); } //类实例化之后才存在,时间迟 public void b2(){} //调用不存在的东西所以会报错 } -
package com.oop.demo01; //学生类 public class Student { //静态方法 public static void say(){ System.out.println("学生说话了"); } //非静态方法 public void say1(){ System.out.println("学生说话了"); } }
-
-
形参和实参
-
package com.oop.demo01; public class Demo03 { public static void main(String[] args) { //实际参数与形式参数的类型要对应 int add = Demo03.add(1, 2); System.out.println(add); } public static int add(int a,int b){ return a+b; } } -
3 进程已结束,退出代码为 0
-
-
值传递和引用传递
-
package com.oop.demo01; //值传递 public class Demo04 { public static void main(String[] args) { int a = 1; System.out.println(a);//1 Demo04.change(a); System.out.println(a);//1 } //返回值为空 public static void change(int a){ a = 10; } } -
1 1 进程已结束,退出代码为 0 -
package com.oop.demo01; //引用传递:对象,本质还是值传递 //对象,内存没学,会晕 public class Demo05 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name);//null Demo05.change(person); System.out.println(person.name);//贾光清 } public static void change(Person person){ //person是一个对象:指向的是-->Person person = new Person();这是一个具体的人,可以改变属性! person.name = "贾光清"; } } //定义了一个Person类,有一个属性:name class Person{ String name;//null } -
null 贾光清 进程已结束,退出代码为 0
-
-
this关键字:继承讲
本文介绍了面向对象编程(OOP)的核心概念,重点包括:
- 面向对象与面向过程的区别:面向对象适合处理复杂问题,强调分类思维;面向过程适合简单问题
- 类的定义:属性+方法=类,类是对象的模板
- 方法详解:修饰符、返回值、参数列表、异常处理等
- 方法调用:区分静态方法(类名调用)和非静态方法(对象调用)
- 参数传递:值传递和引用传递的区别,引用传递可修改对象属性
- 面向对象三大特性:封装、继承、多态(将在后续讲解) 通过代码示例展示了方法定义、调用及参数传递的具体实现方式。
浙公网安备 33010602011771号