面向对象三大特性:封装 继承 多态
1.封装的概念
将方法和字段一起包装到一个单元中,单元以类的形式实现;在此基础上,加上具体实现的隐藏(修饰访问符),共同被称作封装,其结果是一个同时带有特征和行为的数据类型。
(对比c语言中,类:即为自己定义的结构体,结构体中的int型 char型即为字段,方法即为结构体中的函数指针)
“定义方法和类及其属性的过程,称为封装类”
demo实例:
class Student {
int age;
String name;
double score;
void introduce(){
System.out.println("name="+name+",age="+age+",score="+score);
}
void testFunc(){
System.out.println("testFunc");
}
}
public class Demo1 {
public static void main(String[] args) {
Student stu1 = new Student();//实例化一个对象
//类=模板
//类不能直接使用,不能直接访问变量,需要先实例化,申请一个空间
stu1.age = 19;
stu1.name = "QYBS";
stu1.score = 100;
stu1.introduce();
}
}
2.封装之访问修饰符
访问修饰符:private public protected 默认
public :该类或非该类均可访问
private :只有该类可以访问
protected :该类及其子类的成员可以访问,同一个包中的类也可以访问
默认 :同一个包中的类可以访问
修饰符可以用来规范使用空间和使用权限
3.属性封装的实现及方法实现的目的
属性封装:修改属性的可见性来限制对属性的访问
方法封装:根据需要,可以私有化方法,以供内部使用
4.UML类图
Unified Modeling Language(UML)又称统一建模语言或标准建模语言
类的命名应尽量使用领域中的术语
明确、无歧义、以利于互相理解和交流
类的属性、操作中的可见性使用+、#、-分别表示public、protected、private
5.构造方法
构造方法负责对象初始化工作,为对象的属性赋合适的初始值
class Student
{
private int age;
String name;
double score;
Student(int newage,String newname,double newscore){
System.out.println("构造方法被调用");
age = newage;
name = newname;
score = newscore;
//赋初始值
}
}
public class Demo2 {
public static void main(String[] args) {
Student stu1 = new Student(19,"QYBS",99);
}
}
且在Java中,方法是可重载的,函数名一样,参数列表不同