重载、访问修饰符、静态、常用类

重载、访问修饰符、静态、常用类


1.方法的重载

在一个类中,方法名相同,参数不同(个数、类型、次序不同),构成方法重载。方法的重载与访问修饰符、返回值类型、方法参数名没有关系!
在这里插入图片描述

特点:

  • 方法名相同
  • 参数列表不同(参数个数、参数类型、顺序不同)
    如果方法名相同,参数列表也相同,此时虚拟机就懵逼了,不能分辨到底调用哪一个方法。
    注意:方法重载不考虑返回值,不考虑参数名,不考虑访问修饰符。

2.包和修饰符

2.1包

跨包请求的时候需要导入包:import 包名.类名;导入指定类import 包名.*;

2.2修饰符

使用修饰符定义了类和类中的字段或者方法时。可以限定该类或类中字段或方法能被哪些方位的类或者方法来使用。

  • 类的修饰符(两种):public 默认(不写就是默认)
    public:所有包中都可以访问 默认:同包下的类可以访问,其他包不能访问
  • 类中属性/方法修饰符(四种):public、private、proteced、默认
    public 公共的:主要修饰成员变量和方法
    在这里插入图片描述

public 公共的 公共wc。 一个项目中都可以。
protected 受保护的 小区里的wc。
默认:default friendly
private 私有的 自己家的wc

// 访问修饰符:
// 1.针对类的 public , 默认
// 1.针对属性和方法的 public,protected,默认,private 4 // public: 在任意包任意类中可以访问到
// private: 只在当前类中能被访问,其它包其他类都不能访问
// 默认(不写访问修饰符): 在同包的类中可以访问,在其它包的类中不能访问

2.3static关键字

static:静态的
用来修饰成员变量,则该属性就成为类属性,所有该类的实例对象共用这一个属性。任何一个类修改该变量的值,大家看到的都是修改过的值。在内存中static属性是所有类实例共有的内存地址。static来修饰方法,则该方法就成为静态方 法,可以直接通过类名访问,一般在工具类中定义工具方法。

静态变量和实例变量的区别:
1.实例变量,依赖于实例对象而存在。访问实例变量的时候,必须通过实例对象来访问
2.实例变量,在内存中可以有多份(内存中创建了多少实例对象,就有多少实例变量) 每个实例对象的实例变量互不影响
3.静态变量,不依赖于对象而存在。直接与类关联,可以通过类名来访问
4.静态变量,在内存中只有一份,被所有实例对象共享。

  • static修饰的变量叫静态变量
  • static修饰的方法叫静态方法
  • static修饰的代码块叫静态代码块

特点:
所有的静态(静态变量和静态方法)都属于类 (全局)

  • 静态属性和静态方法可以直接通过 类名.静态属性 类名.静态方法() 来使用,这是推荐的 方式。当然也可以通过实例对象来访问静态属性和静态方法,但是这种做法不推荐
  • 静态方法中,只能访问静态属性和其它静态方法。不能访问实例属性和实例方法
  • 实例方法中,可以访问静态属性和静态方法,也可以方法实例属性和实例方法
  • 静态代码块,在类被加载时自动调用。

3.String类

基本数据类型(四类八种) :不属于Object类型的继承体系之下
引用数据类型(字符串,数组,自定义类型) :属于对象类型 Object类型的继承体系之下

3.1什么是String

字符串,引用数据类型。基本数据类型变量存储的是地址,引用数据类型存储的是数据的地址。

特点

  • 字符串不可变,每个字符串都是一个对象
  • 因为字符串不可变,所以字符串是可以共享的
  • 字符串的效果相当于一个字符数组,但是其底层是用byte[]数组实现的

3.2字符串常用方法

在这里插入图片描述
替换中间的间隔符

String str="System-out-print"; 
System.out.println(str.replace("-",""));

输出结果是:Systemoutprint

小结
栈中存的是变量,new出来的对象存在堆中,常量在常量池。
String str1 = “abc”; 先去常量池中找”abc“ 是否存在,如果存在直接引用,不存在,就 创建。
String str2 = “abc”;先去常量池中找”abc“ 是否存在,如果存在直接引用,不存在,就创建。

==:用法

  1. 如果是基本数据类型,比较的是变量的值。
  2. 如果是引用数据类型,比较的是变量中存储的数据的地址。比较内容用equals方法。

3.3StringBuffer和StringBuilder

在java中字符串就是常量。就算对一个字符串进行操作,原来的字符串还是不会改变,只不过又 生成了新的字符串。

我们做的对字符串的任何操作,都不会改变原有字符串,但是会创建新的字符串对象

StringBuilder和StringBuffer都可以用于字符串拼接的场景,提升空间利用率。
StringBuilder线程不安全,性能高。StringBuffer线程安全,性能低。
StringBuilder 是一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证 同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时 候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。

4.日期及格式化

日期格式字符串
y :代表年
M :代表月
d: 代表日
E: 代表星期
H :代表24进制的小时
h :代表12进制的小时
m: 代表分钟
s :代表秒
S :代表毫秒

//获取一个日期对象
Date date = new Date(); 
System.out.println(date);

SimpleDateFormat类 格式化日期。
功能:格式化和解析日期

  1. 将Date类型的日期格式化成我们需要的日期类型 一般是 字符串类型
  2. 将字符串类的日期再转回来。

在这里插入图片描述

上边代码得到的date格式不是我们常用的格式,但是我们可以把它转化成我们常用的格式,
通过SimpleDateFormat类 中的 format(Date date) 将date型转换成特定格式的字符串。
在这里插入图片描述
也可以通过SimpleDateFormat类将一个字符串格式的日期,转换成Date类型。使用 parse(String str) 将字符串str转换成特定格式的date型 如下代码。
在这里插入图片描述
输出当前系统时间为汉语格式

Date d=new Date(); 
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss"); 
System.out.println(d); 
System.out.println(sdf.format(d));

jdk1.8之后的新增日期时间相关类
在这里插入图片描述
在这里插入图片描述

4.1DateTimeFormatter格式化日期类

方法:
ofPattern(“日期格式”);创建特定格式的格式化日期对象
Duraction类 表示:时间的区间,用来度量秒和纳秒之间的时间值 Period类 表示:一段时间的区间,用来度量年月日和几天之间的时间值
Duration.between();
Period.between();


总结

方法重载
包和访问修饰符
方法重载
static关键字
StringBuilder和StringBuffer
日期及格式化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

总有一天你会出现在我身边

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

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

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

打赏作者

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

抵扣说明:

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

余额充值