1.private封装
作用:对于属性、类、方法等进行私有保护,
防止数据被随意修改以保证逻辑正确性(年龄不能是负数)
规定:对所有属性进行封装,
提供
setter
及
getter
方法以供数据的合理操作
2.this关键字(this不调用也存在)
this指当前对象
·
调用类中的属性
·
调用类中的方法或构造方法
在一个构造方法中使用this调用另一个构造方法时,需要写在一行(构造方法是在对象初始化的时候开始,放在第一行保证对象先初始化完毕再进行其他操作)
·
表示当前对象
3.static(
创建独立于具体对象的域变量或者方法
)
-
经过静态修饰的属性存储在方法区中(无论对象被创建多少次,静态的值只有一份)
-
随着类的加载,静态属性已经加载到方法区中, 不需要依赖对象来引用(但对所有的对象均有效, 静态修饰的方法 可以早于对象的创建 )
-
访问时:静态不可以访问非静态,非静态可以访问静态(创建时间!)
4.包
4.1(命名:
com.
公司名
.
项目
名
.
模块名
....)
-
把功能相似或相关的类或接口放在同一个包里、
-
包中的类命名规则如同文件夹(同一个包不能同名)
-
限定了访问权限
4.2 impot(不导包需写全名称、常用的java.lang包已经默认导入)
import 包名.类名;
5.权限修饰符(public private)
6.代码块(
静态代码块-->构造代码块-->构造方法)
1.普通代码块
2.构造代码块:创建对象时执行
3.静态代码块:加载类的时候执行
4.同步代码块
main
:系统规定好的方法名称。如果
main
写错了或没有,会报错
NoSuchMethodError: main
String[] args
:字符串数组,接收参数的
main
:系统规定好的方法名称。如果
main
写错了或没有,会报错
NoSuchMethodError: main
String[] args
:字符串数组,接收参数的
-
main方法详解
- 参数:
- main:系统规定好的方法名称。如果main写错了或没有,会报错NoSuchMethodError: main
-
String[] args :字符串数组,接收参数的
-
单例设计模式
-
保证一个类只有一个实例,实现方式:构造方法私有化
-
必须要自己创建这个实例,实现方式:在本类中维护一个本类对象(私有,静态)
-
必须向整个程序提供这个实例,实现方式:对外提供公共的访问方式( getInstance 方法,静态)
-
一、懒汉式:随着类的加载在内存中对象为
null
,当调用
getInstance
方法时才创建对象(延迟加载)
class Single{
private Single(){}
private static Single s1 = null;
public static Single getInstance(){
if(s1 == null){
s1 = new Single();
}
return s1;
}
}
二、饿汉式:随着类的加载直接创建对象(推荐开发中使用)
class Single2{
private Single2(){}
private static Single2 s = new Single2();
public static Single getInstance(){
return s;
}
void print(){
System.out.println("Hello World!");
}
}