昨天复习了一些JAVA的知识点,有如下几个:
private, this, static, 以及代码块。
1:private
private的作用是为了隐藏数据, 不被用户所看到而设置的, 而且用private声明的成员和变量只能在本类中访问,所以必须提供公共的方法来访问这些隐藏数据:
比如:
class Demo
{
private int age;
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return this.age;
}
}
那么在主类中就可以方便的访问这些数据了。 这极大地提高了代码的健壮性。
public class TestDemo
{
public static void main(String[] args)
{
Demo d = new Demo();
d.setAge(11);
System.out.println(d.getAge());
}
}
2:this
this表示的是当前对象,那么它的主要应用是在构造函数这一块,可以提高代码的操作性和健壮性,不必要重复代码。
如下:
class ThisApply
{
String name;
double salary;
public ThisApply(String name)
{
this.name = name;
}
public ThisApply(String name, double salary)
{
this(name);
this.salary = salary;
}
}
this.name表示的是当前对象的name成员变量,而this(name)表示调用当前类的构造函数,this语句用于构造函数之间互相调用!但是必须位于第一行!
3: static
1):static被修饰的的成员变量和方法都可以被类名.方法名(变量名)被调用。
2):static修饰的变量是放在栈中,而不是在堆中了。
3):static修饰的变量优先于对象而存在,而且被所有对象共享。
4):static修饰的变量生命周期长,随着类的消失而消失,这也是它的缺点。
4:代码块
1):代码块优先于构造函数运行;
那么静态代码块 构造函数 代码块三者有什么区别呢?
如下:
class CodeDemo
{
public CodeDemo()
{
System.out.println("我是构造函数");
}
{
System.out.println("我是非静态代码块");
}
static
{
System.out.println("我是静态代码块");
}
}
我是静态代码块
我是非静态代码块
我是构造函数
按照结果来看, 不难得出优先级为 静态代码块 > 代码块 > 构造函数
2):代码块和构造函数的区别:
构造代码块。
作用:给对象进行初始化,对象一旦建立就运行,而且优先于构造器函数运行
和构造函数的区别。
构造函数是给对应的对象进行初始化,构造代码块是给所有的对象进行初始化
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
本人属于大专软件大一的渣渣,有说错的地方, 欢迎拍砖。
PS:我要向大神看齐!