初学者——面向对象的理解02

static简介以及使用方法

什么是Static:

是我们main函数的一种修饰符,也叫静态修饰符,标识成员可以被类直接调用

static的五种使用方式

  1. 静态成员变量
  2. 静态成员方法
  3. 静态代码块
  4. 静态内部类
  5. 静态导包

static的调用

   类名.属性名
   类名.方法名

static与非static之间的重要区别:

  • 1.static修饰的成员是随着类的加载而加载(优先)     

              非static成员是随着对象的创建而加载

  • 2.静态方法|静态代码块只能调用静态成员,非静态成员是不能直接调用的,创建对象(不能使用this关键字)

             非静态方法可以直接调用非静态成员,也可以调用静态成员.类的对象进行调用静态成员

  • 3.静态成员对于多个对象而言是共享的

              非静态成员对于多个对象是彼此独立的

什么叫做封装:

把类的公有属性定义在内部的过程被称之为封装:变量 方法

为什么使用private修饰变量:

为了保证字段的隐私性: 我们选择使用private修饰符修饰变量
 声明对应的get/set方法对变量的读写操作提供支持

不定长参数的创建:

 类型...参数名

 static double add(double...number){
        double sum=0;
        for (int i = 0; i < number.length; i++) {
            sum+=number[i];
        }
        return sum;
    }

不定长参数的要求:

必须写在参数列表的末尾

什么叫做递归函数:

 在一定程度上可以理解为循环
 或者可以说是自己调用自己本身的方法被称为递归函数
**** 最重要的就是递归何时结束!*****

//这个是用递归实现的斐波那契数列
//这是创建的Class类
public
static int feibo1(int number){ if(number==1||number==2){ return 1; }else { return feibo1(number-1)+feibo1(number-2); } }
//这个是测试类
public
class TextFoNa { public static void main(String[] args) { Scanner input =new Scanner(System.in); System.out.println("请输入一个长度:"); int number=input.nextInt(); for (int i = 1; i <= number; i++) { System.out.print(FoNa.feibo1(i)+" "); } }
//以下图片可以更好地帮助理解递归,
解释一下:输入的5是测试时候随意输入的,return返回的值也就是上面Class里的这句话
feibo1(number-2)+feibo1(number-1),可以理解为5是第3个数和第4个数相加得来的

 

什么是方法重载:

 保证同名方法的参数不同: 个数 类型 顺序

 和访问修饰符 返回值类型无关

小提示:

*方法定义处,参数叫形式参数,也叫形参(主要约束参数的类型)
* 形参名字可以随便取,但是要符合驼峰命名规则,同时要有意义
* 方法调用处,参数叫做实际参数,也叫实参
* 实参名字也可以随便取,但是要符合驼峰命名规则,同时也要有意义
* 方法有没有返回值,和方法有没有参数,没有任何关系
* 方法参数可以有一个,也可以有多个,多个参数之间用逗号隔开(在形参和实参都是这样)
* 形参和实参数量一定要一致,数据类型一定要一致
* 当参数传递为基本数据类型时,参数变化不保留,基本数据类型参数传值
* 当参数传递为引用数据类型时,参数变化会保留,引用数据类型参数传址

努力到无能为力,拼搏到感动自己
原文地址:https://www.cnblogs.com/tkzm/p/10944583.html