要谈类的封装性,首先就要清楚什么是类。类是具有相同属性和行为的一组对象集合。而对象是把符合某类标准的一个具体事物成为对象。类似是静态的概念,而对象是动态的概念。也可以说,类是对象的抽象定义,对象是类的具体实例。
在java中用[类修饰符]class类名{}来进行类的声明,而在类中的方法用[修饰符]返回值类型 方法名称([参数表]){ 方法体 } 的形式表示。在类中创建类的对象时要使用new关键字创建类的对象,使用“.”运算符访问对象的属性与方法。
示例:
public class MyDAte
{
int year,month,day;
void set(int y, int m,int d)
{
year = y;
month = m;
day = d;
}
void set(MaDate date)
{
set(data.year,date.month,data.day);
}
public String toString()
{
return year+ "年" +month+"月"+day+"日";
}
public static void main (String []args)
{
MyData d1 = new MaData();
System.out.println("d1:"+d1.toStrig());
d1.set(2017,1,1);
MyData d2 = d1;
System.out.println("d2:"+d2.toString());
}
}
类的封装包含两层含义:1、将数据和对数据的操作包装成一个对象类型,使对象成为包含一组属性和操作的运行单位;2、实现信息隐藏,类既要提供与外部联系的方法,也要尽可能的隐藏类中的某些数据和实现细节,以约束外部的可见性。构造方法分为显式和隐式。显示为可见的构造函数,可以为多个;而隐式构造函数是不可见的,Java编译器添加。例:显式构造方法
public class Teacher {
int id;
String name;
int age;
boolean ismen;
String address;
public Teacher(int id, String name, boolean ismen) {
this.id = id;
this.name = name;
this.ismen = ismen;
}
public Teacher(int id, String name, int age, boolean ismen) {
this.id = id;
this.name = name;
this.age = age;
this.ismen = ismen;
}
public Teacher() {
}//显式构造方法,当有其他带参数的构造方法时,用户自己定义的不带参的构造方法为显示构造方法
public static void main(String[] args) {
Teacher lisi=null;
System.out.println("聲明對象完畢");
lisi=new Teacher(2,"lisi",22,true);
System.out.println("創建對象完畢");
System.out.println();
}
}
隐式构造方法
public class Teacher {
int id;
String name;
int age;
boolean ismen;
//什么都不写默认为隐式构造方法,隐式构造方法不带参数
public static void main(String[] args) {
Teacher lisi=null;
System.out.println("聲明對象完畢");
lisi=new Teacher();
System.out.println("創建對象完畢");
System.out.println();
}
}