一.递归函数
-
定义:自调函数,在函数中自己调用自己
-
递归头:停止自己调用自己的条件(临界条件=递归头)
-
递归尾:不停的调用自己
-
递归前进段:从开始调用自己到临界条件之间
-
递归后推端: 从临界条件开始,把结果返回给上一层
-
打印九九乘法表
public class Demo02{ public static void main(String[] args){ print(4);//调用方法 } //使用递归实现九九乘法表 public static void print(int i){ //临界条件 if(i==1){//控制行 System.out.println("1*1=1"); return; } print(i-1);//打印前八行 for(int j=1;j<=i;j++){//打印列 System.out.print(j+"X"+i+"="+i*j+"\t"); } System.out.println(); //换行 } }
二.面向对象与面向过程(它们是一种考虑问题的角度)
1.面向对象:关注点在对象不在过程(找别人来做这件事,自己只要结果),但面向对象是依托于面向过程的
2.面向过程:关注过程,一步步实现解决问题
3.面向对象的特点:
-
面向对象更贴近生活,更符合人们的思维方式(例如:办一件事找人(靠关系),让自己更快达到自己的目的)
-
面向对象更符合生活工作中的管理者,面向过程更符合执行者的角度
-
可以将复杂的问题简单化
4.面向对象的思维方法
-
类:生活中事物的模板(鸟类,犬类等)
-
对象:生活中的事物
5.自定义类
-
创建自定义类
public class Phone03{ //成员变量--》事物的属性,来确定这个事物的唯一性 //颜色 public String color; //品牌 public String brand; //尺寸 public double size; //成员方法--》用来实现功能 //打电话 public void call(){ System.out.println("从前有一个人长得像电话,出门就被打了..."); } }
-
使用自定义类
/*1.导包 2.创建类型变量|引用 3.使用方法 */ public class PhoneTest04{ public static void main(String[] args){ //1.创建一个手机对象 Phone03 p1=new Phone03(); //一个名字叫做p1的手机已经创建号了 Phone03 p2=new Phone03(); //一个名字叫做p2的手机已经创建号了,与p1就是2个对象 //给自定义类的成员变量赋值 p1.color="黑色"; p1.size=5.5; p1.brand="苹果"; //调用方法 p1.call(); System.out.println(p1.color); } } /* new Phone03() 出现new一定会做三件事: 1.会在堆中开辟一个空间给创建的对象 2.成员变量会跟随对象进入堆,并附初始值 3.把对象在堆中的地址放回给引用 */