Java教程

Java程序设计-面向对象(一)

本文主要是介绍Java程序设计-面向对象(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1. 面向对象思想

  1. 面向对象就是一种常见的思想,符合人们的思考习惯
  2. 面向对象的出现将复杂的事情简单化
  3. 面向对象的出现将我们的身份由执行者转变成为了指挥者
  4. 面向对象的重点只需要关注两个:
    • 有没有这个对象
    • 对象里面具不具备这样的功能

2. 面向对象开发

就是不断的创建对象,使用对象,指挥对象做事情,有对象就找这个对象做事情,没有对象自己创建
一个对象,使其拥有这样的功能,其他人也可以使用这个对象

3. 面向对象设计

其实就是在管理和维护对象之间的关系

4. 面向对象特征

封装、继承、多态、抽象

5. 类和对象之间的关系

用Java语言描述现实中的事物,通过类的形式来体现,对于事物的描述通常只关注两个方面:
一个是属性、一个是行为(功能、方法),只要明确该事物的属性和行为并定义在类中即可

  1. 类:对某一类事物的描述(属性、行为)
  2. 对象:该类事物的实例,在java中通过new的方式创建

6. 成员变量和局部变量的区别

  1. 作用域
    • 成员变量定义在类中,整个类都可以访问
    • 局部变量定义在方法中,语句(for循环)中,局部代码块中,只在所属的区域有效
  2. 变量的存在那块内存
    • 成员变量存在于堆内存的对象中
    • 局部变量存在于栈内存的方法中
  3. 生命周期
    • 成员变量随着对象的创建而存在,随着对象的消失而消失
    • 局部变量随着所属区域的执行而存在,随着所属的结束而释放
  4. 是否有默认值
    • 成员变量有默认的初始化值
    • 局部变量没有默认的初始化值

7. 封装思想

是指将属性私有化,对外提供公共的访问形式(getter,setter)
注意:私有仅仅是封装的一种体现

8. 构造方法(Constructor)

  1. 特点:
    • 构造器的名称与类名相同
    • 构造器不用定义返回值类型
    • 构造器没有具体的返回值
  2. 作用:
    • 给对象进行初始化
  3. 注意:
    • 默认构造器的特点
    • 一个类中多个构造器是以"重载"的形式体现的
  4. 重载:
    • 方法名相同,参数列表不同

9. this关键字

  • 用法1:
    当成员变量和局部变量重名时,可以使用this来区分
    this:代表对象,代表当前对象,this就是所在方法所属对象的引用。简单说:就是哪个对象调用this所在的方法
    this就代表哪一个对象

  • 用法2:
    this还可以在构造器中调用构造器

10. 抽 象类(abstract)

抽象:笼统、模糊、看不懂、不具体

  1. 抽象类的特点:

    • 方法只有声明没有实现时(没有方法体),该方法就是抽象方法,需要被abstract修饰,抽象方法必须定义在抽象类中,该类也必须使用abstract修饰
    • 抽象类不可以被实例化(不可以被new)因为调用抽象方法没有意义
    • 抽象类必须由其子类覆盖了所有的抽象方法后,该子类才可以实例化,否则,这个子类还是一个抽象类
    • 抽象类和抽象方法非常适合做"系统的分析和设计的工具"
  2. 问题:

    • 抽象类中有构造器吗?
      有,可以给子类对象进行初始化

    • 抽象类中可以不定义抽象方法吗?
      可以,但是很少见
      适配器类

      abstract class A{
        void show1(){}
         void show2(){}
       }
      
    + 抽象(abstract)关键字不可以和下列哪些关键字共存?
     private不行,抽象方法需要被覆盖
     static不行
     final不行
    
    + 抽象类一定是父类吗?
      一定是
      
    + 抽象类和一般了类的异同
       相同点:
       抽象类和一般类都是用来描述事物,
    都在内部定义了成员
    不同点:
    1)一般类有足够的信息描述事物
      抽象类描述事物的信息可能不足
    2)一般类中不能定义抽象方法,只能定义非抽象方法
    抽象类中可以定义抽象方法,也可以定义非抽象方法
    3)一般类可以被实例化
    抽象类不能被实例化
    
这篇关于Java程序设计-面向对象(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!