JAVA笔记七
this:就代表本类的对象,this代表它所在函数所属对象的引用
简单说:那个对象在调用this所在的函数,this就代表那个对象
静态:static
用法:是一个修饰符,用于修饰成员(成员变量,成员函数)
当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,
还可以直接被类名调用。类名.静态成员
static特点
1.随着类的加载而加载
2.优先于的对象存在
3.被所有对象所共享
4.可以直接被类名所调用
实例变量和类变量的区别:
1.存放位置。
类变量随着类的加载而存在与方法区中。
实例变量随着对象的建立而存在于堆内存中。
2.生命周期:
类变量生命周期最长,随着类的消失而消失
实例变量生命周期随着对象的消失而消失
什么时候使用静态?
要从两方面下手
因为静态修饰的内容用成员变量和成员函数
什么时候定义静态的变量(类变量)?
当对象中的出现共享数据时,该数据被静态所修饰。
对象中的特有数据要定义成非静态存在于堆内存中
什么时候定义类函数呢?
当功能内部没有访问到非静态数据(对象的特有数据),
那么该功能定义成静态的。
class Peson{
String name;
public void show(){
System.out.println("haha");
}
}
class{
public static void main(String[]args){
Person p = new Person();
p.show();
}
}
}
静态的应用
class Demo
{
public static void main(){
int[] arr={3,4,1,8};
int max =getMax(arr);
System.out.println("max="+max);
}
public static int getMax(int[] arr){
int max =0;
for(int i =1;max<arr.length;x++){
if(arr[x]>arr[max]){
max=x;
}
}
return arr[max]
}
}
设计模式:解决某一类问题最行之有效的方法
单例设计模式:解决一个类在内存中只占用一个对象
想要保证对象唯一
1,为了避免其他程序过多建立该类对象。先禁止其他程序建立该类对象。
2,还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象
3,为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
这三步怎么用代码体现?
1,将构造函数私有化
2,在类中创建一个本类对象
3,提供一个方法可以获取该对象
class Single
{
private Single(){
private static Single s = new Single();
public static Single getInstance(){
return s;
}
}
}
class SingleDemo
{
public static void main(String[]args){
Single ss = Single.getInstance();
}
}