2022.07.18 第九小组 王茜 学习笔记
递归
Java中的递归:
在方法的函数体中又调用了方法自己本身。
递归调用的细节:必须要求递归中有可以让函数调用的结束条件。否则函数一直调用,就会导致内存溢出。
面向过程和面向对象
- 面向过程:面向过程就是分析出实现需求需要的步骤,通过一些方法来一步一步实现
- 面向对象(行为化):把整个需求的按照特点、功能划分,将这些存在共性的部分封装成类(类实例化之后才是对象),让对象去解决问题
面向对象是更高级的抽象,是对现实世界的映射。
在Java中,面向对象有三(四)大特征:
- 封装
- 继承
- 多态
- 抽象
创建对象的过程,类的实例化的过程,对象又叫做类的一个实例
我们创建了一个Car类的对象car1,这个car1就是对象的名。其实这个car1就是个标识符。
对象名的命名规则:小驼峰1创建对象的语法:类名 对象名 = new 类名( );类名 对象名 = new 构造器(类名())
斐波那契数列
public class Ch06 {
/*
斐波那契数列
我们知道了除了0和1,第number个数等于第number-1个数和第number-2个数的和
当number=4时
return fibonacci(3)+fibonacci(2)
fibonacci(3)=fibonacci(2)+fibonacci(1)
fibonacci(2)=fibonacci(1)+fibonacci(0)
*/
public int fibonacci(int number){
if(number==0||number==1){
return number;
}else {
return fibonacci(number-1)+fibonacci(number-2);
}
}
斐波那契后半部分
public static void main(String[] args) {
Ch06 c=new Ch06();
int i= c.fibonacci(3);
}
}
重载
方法的重载Overload
* 1、方法名相同
* 2、参数不同(参数的类型、参数的个数、参数的顺序)
*
* 与返回值类型无关,与访问权限修饰符无关,与方法体无关
例子:
重载
public class Ch07 {
public int max(int a,int b){
return a>b?a:b;
}
public int max(int a,int b,int c){
return (a>b?a:b)>c?(a>b?a:b):c;
}
public static void main(String[] args) {
Ch07 c=new Ch07();
c.max(1,2);
}
构造器
构造器(构造方法)
* 语法:访问权限修饰符 类名(){
*
* }
* 特点:
*1、 ava在new对象的时候,先看对象所对应的类有没有构造器,有的话有什么样的构造器;如果没有构造器,则无法构建对象(创建对象)
* 2、每个类都会有一个默认的无参的构造器
* 3、在对象被实例化时调用了构造器
* 4、创建对象是通过构造器创建的
* 5、如果一个类中,显示-声明了一个构造器,原来默认的无参构造器失效
今日感受:可能是周一综合征吧,太困了......
上一秒还在听课,下一秒就迷糊了......