今天天气雨夹雪、心情雨夹雪
关于迭代
迭代就是重复反馈的结果,其目的就是为了逼近所需要的目标或者结果,对于每一次的迭代结果就是下一次迭代结果的初始值。重复一系列运算的步骤,从前面的量依次求出后面的量的过程。此过程的每一次结果都是由对前一次所得结果施行相同的运算步骤所得到的。
ps:利用迭代来计算斐波那契数列。
public class FibonacciD { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); System.out.println(fibon(n)); } public static int fibon(int n){ if (n <= 0 ) return 0; if (n == 1 || n == 2){ return 1; } int num1 = 1; int num2 = 1; int num3 = 0; for (int i = 3; i <= n ; i++) { num3 = num2 + num1; num1 = num2 ; num2 = num3 ; } return num3; } }
关于重载
1.什么是重载?
函数或者方法有着相同的名称,但是参数列表不同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者重载方法,
在java中同一个类中的两个或者两个以上的方法可以拥有同一个名称,只要它们的额参数声明不同即可,这种情况下该方法就被称为重载。这个过程称为方法重载;
重载的例子:
public class SumRe { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num1 = scanner.nextInt(); int num2 = scanner.nextInt(); sum(num1,num2); System.out.println("========================"); double n1 = scanner.nextDouble(); double n2 = scanner.nextDouble(); double n3 = scanner.nextDouble(); sum(n1,n2,n3); } public static void sum(int a,int b){ System.out.println(a+b); } public static void sum(double a,double b,double c){ System.out.println(a+b+c); } }
2.重载的作用:
1.方法的重载主要的好处就是不用为了对多个不同的 参数类型和多个不同的参数个数,而写多个函数,多个函数使用同一函数名称。 在调用的时候,就不需要记住多个方法的名称 而只需要知道方法的的功能就可以直接的给它传递不同的参数,虽然名字相同但是根据参数就可以自动调用对应的函数。
HOmework
1.派生类调用基类的构造器必须用到的关键字()
this final super static
题解:在java的继承关系当中 新的类称为子类 也叫做派生类
继承是从已有的类当中派生出新的类,新的类可以吸收已有的类的数据属性和行为,并且可以扩展新的能力。
class A extends B { // B叫做父类或者基类,A叫做派生类或者子类 }
2.接口的定义
一个类当中只是由抽象方法和全局变量组成的,那么在这种情况下不会将其定义为一个抽象类,而是将其定义为一个接口,所以接口就是一个特殊的类,而且这个类里面只有抽象方法与全局变量。
接口使用个、interface 关键字完成
interface A{ // 全部变量 public static final String a =" "; //抽象方法 public abstract void print(); }
由于接口当中存在抽象方法,所以接口对象不可能直接使用关键字new 进行实例化;使用接口时:
1.接口必须要有子类,但是此时一个子类可以使用implements 实现多个接口 2.接口的子类,必须重写接口中的全部抽象方法; 3.接口的对象可以利用子类对象向上转型进行实例化操作。
实现接口
interface A {// 定义了接口 public static final String MSG = "Hello";// 全局常量 // 抽象方法 public abstract void print(); } interface B { public abstract void get(); } class X implements A, B {// X类实现A和B两个接口 @Override public void get() { System.out.println("B接口的抽象方法!"); } @Override public void print() { System.out.println("A接口的抽象方法!"); } } public class Demo { public static void main(String args[]) { X x = new X(); A a = x;// 向上转型 B b = x;// 向上转型 a.print(); b.get(); } }