3、面向对象的封装性
在一个包里可以建多个类,
面向对象包括三大特征:
-封装
-继承
-多态
1、封装的好处:封装之后看不到比较复杂的一面,只能看到该事物简单的一面
2、复杂性封装,对外提供简单的操作入口,封装之后才会形成真正的对象-独立体。
3、封装意味着程序以后可以重复使用,并且这个事物适应性比较强,在任何场合都可以使用
4、封装意味事物本身提高着安全性。
public class UserTest
{
}
1、如何进行封装
1、建工程再建project,2、在scr中右键建一个包(包的作用是方便管理和划分类)3、在包里的建一个类
如何在代码上进行封装
可以更换包的显示格式:项目区右上角小三角,下拉后由package presentation,可选flat并列结构,或者Hierachical树形结构。
2、封装的步骤
public class Student
{
private int number;
private String name;
private Computer diannao;
}
public class OOTest//类名必须大写的,所以使用类名关键字必须首字母大写,一个类就是一个可用数据类型。
{
public static void main(string[] args)
{
Student xiaoming=new Student();
System.out.println(xiaoming.age)
}
}
编译报错,age不可见,因为在工程里每一个类的属性带上private关键字,则该类中带有private的属性其他类不可见,这保证了每个类作为一个黑盒不可见。
1、所有属性私有化,使用private关键字进行修饰,private表示私有,修饰的所有数据只能在奔雷中访问。
2、对外提供简单的操作入口,也就是说以后外部程序想访问类似于age属性的时候,必须通过这些简单的入口进行访问。
1、所有属性对外提供两个公开的方法,分别是set和get方法
--想修改age属性,调用set方法
--想读取age属性,调用get方法
3、set方法的命名规范
pubulic void setAge(int a)
{
age=a;
}
4、get方法的命名规范:
public in getAge()
{
return age;
}
//可以在创建完类之后点右键,选source再选generate Getters and Setters,自动生成set和get方法
回想一下,一个属性通常访问的时候包括几种访问形式?
第一种方式;想读取这个属性的值,读取get
第二种方式;想修改这个属性的值,修改set
请大家先背会以下内容
setter and getter方法没有static关键字
有static关键字的方法怎么调用:类名.方法名(实参)
没有static关键字修饰的方法怎么调用:引用.方法名(实参)
例子:
public class User()
{
private int age;
pubulic void setAge(int a)
{
if(a<0||a>150)
{
System.out,println("您提供的年龄不合法");
return;
}
age=a;
}
public int getAge()
{
return age;
}
public int setAge(int a)
{
age=a;
}
}