java基础之面向对象,java开发必备技能,封装、继承、多态

## java面向对象之封装

一、基本介绍:
封装(encapsulation):就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他不分只有通过呗授权的操作(方法),才能对数据进行操作。
二、封装的好处:
1.隐藏实现的细节;也就是说调用者无须知道怎样实现的!
2.可以进行对数据进行验证,保证安全合理。(在方法内部实现)
三、封装的实现步骤:
1.将属性进行私有化:private(不能直接修改属性);
2.提供一个公共的(public)set方法,用于对属性判断并赋值
public void setXxx(类型 参数名){
//Xxx表示某个属性
//加入数据验证的业务逻辑
属性 = 参数名;
}
3.提供一个公共的(public)get方法,用于获取属性的值
public 数据类型 getXxx(){//权限判断,Xxx某个属性
return xxx;
}
四.快速入门案例:
在一个程序中,不能随便查看人的年龄,工资隐私,并对设置的年龄设置合理的校验,否则给默认,年龄在(0120)内,name的长度在26个字符。

## java面向对象之继承:extends

一、为什么需要继承?
两个类中的属性和方法有很多是相同的,利用继承实现代码的复用性。
二、基本介绍:
1.概念:继承可以解决代码复用,让我们的编程更加靠近人类思想,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过extends来声明继承父类即可。
2.基本语法:class 子类 extends 父类{
}
(1)子类会自动拥有父类定义的属性和方法;
(2)父类又叫做超类、基类;
(3)子类又叫派生类。
三、继承的好处:
1.代码复用性提高了;
2.代码的扩展性和可维护性提高了。
四、继承的细节:
1.子类继承了所有的属性和方法,非私有的属性和方法可以在子类中直接访问,但是私有属性和方法不能在子类中直接访问,要通过父类提供的公共的方法去访问;
2.子类必须调用父类的构造器,完成父类的初始化;
3.当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成対父类的初始化工作,否则,编译不会通过!
4.如果希望指定去调用父类的某个构造器,则显示的调用一下:super(参数列表);
5.Object是所有类的父类;
6.父类构造器的调用不限于直接父类!将一直往上追溯直到Object类也就是顶级父类;
7.子类最多只能直接继承一个类,单继承机制;
8.不能滥用继承,子类和父类之间必须满足is - a 的逻辑关系
五、继承的本质:
向上查找,从最低类向上查找,直至找到或顶级!
java面向对象之多态:
一、基本介绍:方法或对象具有多种形态。是面向对象的第三大特征,堕胎是建立在封装和继承基础之上的;
二、多态的具体体现
1.方法的多态:重载和重写;
2.对象的多态:(核心、困难、重点)
重点(1)一个对象的编译类型 和运行类型可以不一致;
(2)变异类型在定义对象时,就确定了,不能改变;
(3)运行类型是可以变化的;
(4)编译类型看定义时 = 的左边,运行类型看 = 的右边。
三、多态注意事项和细节:多态的前提是:两个对象(类)存在继承关系,
多态的向上转型
1.本质:父类的引用指向了子类的对象;
2.语法:父类类型 引用名 = new 子类类型();
3.特点:编译类型看左边,运行类型看右边;可以调用父类的所有成员方法(需遵守访问权限),但是不能调用子类特有的成员方法;最终的运行效果还要看子类的具体实现;
多态的向下转型
1.语法:子类类型 引用名 = (子类类型)父类引用;
2.只能强转父类的引用,不能强转父类的对象;
3.要求父类的引用必须指向的是当前目标类型的对象;
4.可以调用子类类型中多有的成员
属性没有重写
1.属性没有重写之说,属性的值看编译类型;
2.instance of 比较操作符,用于判断对象的运行类型是否为XX类型或XX类型的子类型;
动态绑定机制: java重要特性:动态绑定机制
1.当调用对象方法的时候,该方法会和该对象的内存地址(运行类型)绑定到一起;
2.当调用对象属性时,没有动态绑定机制,哪里声明哪里调用!
每日金句分享:与其担心未来,不如现在好好努力。

猜你喜欢

转载自blog.csdn.net/m0_52271574/article/details/121217123
今日推荐