Java面向对象基础

面向对象

1.面向过程和面向对象的区别以及联系
联系:在解决问题的时候 面向过程(线性思维) 面向对象(宏观上把控事物)
面向对象底层应该是通过面向过程实现的
区别:面向过程解决问题不复杂,如果问题复杂,就会导致整个系统特别臃肿,不利于维护
面向对象把控事物,通过面向过程解决问题 更好的处理问题、降低成本

实例:比如班长开门
对象有:班长、门
方法:开();
2.如何产生对象?
语法:类名 变量名 = new 类名();
举例:Person p = new Person();

构造器:
语法:修饰符 类名(){
代码;

特点:通过new关键词使用构造器可以产生当前类的实例对象。
注意事项:
1.构造器方法不需要写返回值
2.构造器方法名必须与类名保持一致
3.无需在方法内部显式的返回当前对象
4.如果在一个类中不写构造器,则默认存在一个无参构造器
5.如果在类中写了一个带参构造器,则不会存在默认的无参构造器
6.构造器可以重载
this关键字:
作用:
1.引用隐式参数

public class Demo{
    int num;
    public void add(int num) {
        System.out.println(num+num);
    }
    public static void main(String[] args) {
        new Test().num=10;
        new Test().add(20);
    }

在该代码中,add方法传了一个num参数,成员变量中也有一个num,因为java中的就近原则,方法中的num都会指向传进来的num,因此如果需要调用成员变量中的num就需要加上this.num,特制成员变量中的num
2.调用构造函数
在当前构造方法中,在第一行代码中使用this可以调用其他构造函数,必须是第一行代码中才可以。
3.指向当前类

面向对象三大特性

1.继承
子承父业
作用:提高了代码的复用性
语法:修饰符 类名 extends 父类{


注意:子类可以使用父类定义的属性、方法,子类也可以定义自己独有的属性、方法
java中只支持继承一个父类(单继承),因此继承的复用性没有那么强,
继承维护了一种关系 is –>a。维护了逻辑关系并且可以让我们更好的通过面向对象去梳理系统之间的关系。
如果一个类没有显式的继承其他类,那么该类默认父类是Object,我们称Object类是所有类的父类、基类、超类。
面试问题:A一开始继承B,在后期迭代过程中,发现A继承C更优秀,如何解决?
答:让B继承C,这样C也相当于是A的父类
方法重写:
父类中的方法不满足子类的需求,子类可以重写父类的方法。
语法:重写父类方法的实现代码。
super代指父类,在区分子类和父类中同名的方法或变量时不可以省略,类似于this
super()调用父类的空构造器,默认调用父类的空构造器,必须在构造器的首行写。
问:super和this如何同时发挥作用?
答:super()和this()不能同时出现,只能存在一个,保留this(),通过this()调用的空构造器中持有一个super的指向。
包:
作用:区分类的
一个类中头顶写package声明当前类从属哪个包
导包:
作用:当前使用的类不是通包下或者重名的,需要导入包来使用
语法:在class前用impor 关键词导入所需要的包
如何导入同名类:只有一个类能通过导包导入,其他类需要通过全限定名操作
如何静态导入(JDK1.5之后) import static java.lang.Math.PI;

2.封装:
定义:在面向对象的设计方法中,封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
优点:
良好的封装能够减少偶合
类内部的结构可以自由改变
可以对成员变量进行更精确的控制
隐藏信息,实现细节
对调用者而言降低了调用的复杂度,降低了学习成本
对被调用者而言,增加了被调用者的安全系数,维护系统内部的稳定性
继承在一定程序上破坏了封装性
3.多态:
定义:多态是一个行为具有多个不同表现形式形态或形态的能力。
多种形态 编译看左边 运行看右边 动态联编
优点:
消除类型之间的耦合关系
可替换性
可扩充性
接口性
灵活性
简化性
多态存在的三个必要条件:继承、重写、父类引用指向子类对象

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值