*private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)
*私有只在本类中有效。
注意:私有仅仅是封装的一种表现形式。
常用之一:
将成员变量私有化,对外提供对应的set ,get方法对其进行访问。提高对数据访问的安全性。
代码展示:对Person进行封装
将age私有化以后,类以外即使建立了对象也不能直接访问。
但是人应该有年龄,就需要在Person类中提供对应访问age的方式。之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句,对访问的数据进行操作。提高代码健壮性。
class Person
{
private int age;
public void setAge(int a)
{
if(a>0&&a<130)
{
age=a;
speak();
}
else
System.out.println("feifa age");
}
public int getAge()
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person();
p.setAge(33);
}
}
***构造函数
特点:1.
函数名与类名相同2.不用定义返回值类型3.没有具体的返回值。
*构造代码块:
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。记住:构造代码快中定义的是不同对象共性的初始化内容。
class Person
{
private String name;
private int age;
}
Person(String n)
{
name = n;
System.out.println("B: name="+name+",age="+age);
}
Person(String n,int a)
{
name = n;
age = a;
System.out.println("C: name="+name+",age="+age);
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p1 = new Person();
Person p2 = new Person("lisi");
Person p3= new Person("wangjainhui",24);
当在函数内需要用到调用该函数的对象时,就用this。this:是用于区分局部变量和成员变量同名情况.
this不能用于static方法中。
this();用于构造函数间的调用。 :用于构造函数之间进行互相调用。
this语句只能定义在构造函数的第一行。因为初始化要先执行。
class Person
{
private String name;
private int age;
class PersonDemo4
{
public static void main(String[] args)
{
Person p = new Person("huige");
//Person p = new Person("lisi",30);
Person p1 = new Person("laowang",36);