面向对象

什么是面向编程?

我们在解决问题中,注重的是解决问题的每一个步骤和过程。

什么是面向对象?

注重的是在问题中,涉及到哪些对象,以及对象之间有哪些关系。

什么是对象?

万事万物皆对象,对象是由静态的“属性”和动态的“方法”来组成的。

什么是类? 

类:一组具有相同属性和行为的对象的抽象。

什么是消息?

消息:对象之间的通信和响应、外界发给对象的一个请求。

JAVA的三大特性:封装、继承、多态

面向对象封装的体现

存在一个边界,边界之内的细节隐藏起来,只留下对外的接口,(如,笔记本,手机,饮水机)

为什么使用封装:(1)易用,简单。(2)安全(3)易维护

继承:允许后代直接用先辈的所有属性和行为。

为什么使用继承:更好的实现了代码的重用

多态:不同的对象,接收到相同的消息,产生的响应不同。

多态的体现:重写、重载等。

构造函数:

构造函数,是在对象实例化时自动被系统调用,该函数名必须是独一无二的。对于一个类来说,是将类名作为函数名。

构造函数不需要程序员去定义返回值,他是系统自动决定的,void也不行。

Static静态:静态代码块是在加载类的时候自动被执行,早于构造函数。静态的方法,面向的是整个类,不是某个对象,所有没有this,并且只能使用类名来调用,不能使用实例化对象去调用。

Final修饰的类不能被继承,Final修饰的变量不能被修改(也就是常量)Final修饰的方法【不变的,固定的】

为什么需要去使用抽象类?

在现实生活中,有些类我们明明知道是有某些方法的,但是具体这些方法是怎么去做的好像又无法说清楚。比如手机、电报、固定电话等等都是通讯工具,而通讯工具就应该具有向外发送消息的方法,但是却无法说明具体怎么发,而手机、电报等,我们又可以说清楚它们是怎么发送消息的。

由于抽象类中包含有未实现的方法,所以抽象类是无法去实例化对象(new),那么它的作用是什么呢,它可以对它的后代进行规划和约束,后代必须去按照它的要求去实现,但具体怎么实现由后代去决定。

匿名内部类:

为什么要使用匿名内部类?

先看看如果不使用匿名内部类的情形:

(1) 定义接口 Shape(如果已经有则跳过)

 public interface Shape {

    public String getName();

    public double area();

    public double perimeter();

}

(2)实现接口实现类 Square

public class Square implements Shape{//接口Shape形状被方形Square实现l

 

    public double d;

 

    public Square(double d) {

        this.d = d;

    }

 

    @Override

    public String getName() {

        return "正方形";

(3)定义Square类对象并使用

public class Test {
    public static void main(String[] args) {
        Square square = new Square(5);

        Shape shape =  square;
        print(shape);

    }
    public static void print(Shape shape){
        System.out.println(shape.getName()+"的周长是"+shape.perimeter()+"\n的面积是"+shape.area());

    }

那么如果使用匿名内部类呢?

(1) 定义接口(与上一种情形一样)

(2) 定义匿名内部类,并实现接口(实际上就是将上一种情形的第2、3步给合并了)。

匿名内部类显然简化了流程,但是也使得使用者理解更困难了,代码的层次不是太清晰。

 

静态的方法,只能访问静态的成员。

 







  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值