static:
是我们main函数的一种修饰符
静态修饰符:标识成员可以被类直接调用
static五种修饰
1:静态成员变量
2:静态方法变量
3:静态代码块
4:静态内部类
5:静态导包
package cn.biji;
public class StatinTest {
static int number=10;//静态成员变量
public static void main(String[] args) {
}
public static void sayHello(String name){//静态函数
System.out.println(name+"您好");
}
static{
System.out.println("这是静态代码....");//静态代码块
}
static class innerClass{//静态内部类
}
}
static修饰后:
可以被类名直接调用
类名.属性名
类名.方法名
static与非static之间的重要区别:
-
List item
区别1:
-
static修饰的成员是随着类的加载而加载(优先) 非static成员是随着对象的创建而加载
区别2:
-
静态方法|静态代码块只能调用静态成员,非静态成员是不能直接调用的,创建对象(不能使用this关键字) 非静态方法可以直接调用非静态成员,也可以调用静态成员.类的对象进行调用静态成员
区别3:
-
静态成员对于多个对象而言是共享的 非静态成员对于多个对象是彼此独立的
封装
1.把类的公有属性定义在内部的过程被称之为封装:
变量 方法
2.为了保证字段的隐私性: 我们选择使用private修饰符修饰变量
声明对应的get/set方法对变量的读写操作提供支持
框架中只认get/set方法 MyEclipse中生成get set的快捷键 alt+shift+s 点击R键 选择对应的字段 生成get/set
public static void main(String[] args) {
Person p=new Person();
Person p1=new Person();
p.setName("张三");
p.setAge(16);
System.out.println("我叫:"+p.getName()+",今年:"+p.getAge());
System.out.println("我叫:"+p1.getName()+",今年:"+p1.getAge());
}
package cn.bdqn;
public class Person {
private String name="无名氏";
private int age=18;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
不定长参数(0~N)
类型...参数名 语法:不定长参数的要求:必须写在参数列表的末尾
方法重载:
保证同名方法的参数不同: 个数 类型 顺序
和访问修饰符 返回值类型无关
递归方法解决斐波那契数列
递归函数:
在一定程度上可以为循环
自己调用自己本身的方法被称为递归函数
-
最重要的就是递归何时结束!
import java.util.Scanner;
public class ZuoYe01 {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("请输入项数");
Scanner inScanner=new Scanner(System.in);
int n=inScanner.nextInt();
System.out.println(f(n));
}
public static int f(int n){
if (n == 1 || n == 2) {
return 1;
} else {
return f(n-1)+f(n-2);
}
}
}