Java 数组_方法_static关键字

Java 数组_方法_static关键字


活动地址:CSDN21天学习挑战赛

java数组

存储一批同种类型数据

静态初始化数组
数据类型[] 数组名 = new 数据类型[]{元素1, 元素2 , ...};
int[] ages = new int[]{12,24,26};  // 和 C 语言有区别
数据类型[] 数组名 ={元素1, 元素2 , ...};
int[] ages = {12,24,26}; 

数组是引用类型

访问数组
数组名[index];

获取数组长度

array.length;

注意点

  • 数据类型[] 数组名 可以写成 数据类型 数组名[] --> 同C语言
  • 数组一旦定义后,长度和类型就已经确定了
动态初始化数组

定义时只确定类型和长度

数据类型[] 数组名 = new 数据类型[长度];

元素默认值
在这里插入图片描述

两种初始化方式,不可以混用

数组遍历
for(int i = 0 ;i< array.length; i++ ){
    // array[i];
}
java方法
  • 程序逻辑清晰
  • 代码的复用
方法定义
修饰符 返回值类型 方法名(形参列表){
	// 方法体
}
  • 方法的编写顺序无所谓
方法重载

同名方法, 形参列表不同

调用时,通过参数的不同来区分调用的方法

通过形参不同实现功能差异化的选择

修饰符,返回值类型不能作为重载的基础

形参列表不同指的是:形参的个数类型顺序不同,不关心形参的名称

static 关键字
  • 静态, 可以修饰成员变量,成员方法

  • 静态成员变量,静态方法

  • static 修饰后的成员变量, 被类的所有对象共享(访问和修改) --> 属于类,内存中只有一份

    类名.静态成员变量;
    对象.静态成员变量; --> 也可以
    
  • 静态成员方法,可以使用类名访问,可以使用对象访问

  • 实例成员方法,只能使用对象访问

static 访问注意事项
  • 静态方法只能访问静态成员,不可以直接访问实例成员
  • 实例方法可以访问静态成员,也可以访问实例成员
  • 静态访问中不可以使用this关键字, this 代表的是对象
工具类

类中的静态方法,每个方法都是以完成一个公用的功能为目的。

  • 实例方法需要创建对象调用
  • 静态的工具类无需创建对象,就可以直接调用方法 --> 将工具类的构造器进行私有
代码块

类的5大成分: 成员变量,构造器,方法,代码块,内部类

代码块定义在方法中

使用{} 括起来的代码称为代码块

  • 静态代码块

    • 格式 : static{}

    • 需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次

    • 在类加载的时候做一些静态数据初始化的操作,以便后续使用

      定义成员变量时不允许赋初值

    • 在启动系统时对静态资源进行初始化

  • 构造代码块

    • 格式: {}
    • 每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行
单例设计模式

一个问题通常有n种解法的,但其中肯定有一种解法是最优的,这个最优的解法被人总结 出来了,称之为设计模式

  • 单例模式

    保证系统中,应用该模式的这个类永远只有一个实例,即一个类永远只能创建一个对象

  • 单例实现方式

    • 饿汉单例模式
    • 懒汉单例模式
饿汉单例模式

在用类获取对象的时候,对象已经提前为创建好

步骤

  • 定义一个类,构造器私有

  • 定义一个静态变量,存储一个对象

    public class SingleInstance{
        // 静态变量存储一个对象:属于类,与类一起加载一次
        public static SingleInstace instance = new SingleInstance();
        // 私有构造器
        private SingleInstance(){
            // ...
        }
    }
    
懒汉单例模式

真正需要该对象时,才去创建一个对象(延迟加载对象)

步骤

  • 定义一个类,私有构造器

  • 定义一个静态变量存储对象

  • 提供一个返回单例对象的方法

    public class SingleInstance{
        // 静态变量存储一个对象:属于类,与类一起加载一次
        public static SingleInstace instance;
        // 私有构造器
        private SingleInstance(){
            // ...
        }
        
        // 提供一个一个方法返回一个单例对象
        public static SingleInstance getInstance(){
            ...
            return ...;
        }
    }
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值