java基础-->概述部分


java(面向对象)的三大特性

  1. 封装

? 是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

  1. 继承

? 继承是面向对象最显著的一个特性。 继承是从已有的类中派生出新的类, 新的类能吸收已有类的数据属性和行为,并能扩展新的能力

  1. 多态

? 字面理解,就是多种形态,在Java中,多态指的是,一个类可以有多种表现形态

? 多态主要是 用来创建可扩展的程序

java的运行机制

java的运行机制分为三个部分:编写编译执行

  1. 编写

    指的是java源代码的编写,生成后缀名为.java的代码文件,该文件可用于编译。

  2. 编译

    指的是使用java编译器对.java文件进行编译,生成后缀为.class的字节码文件,这个文件可用于被JVM的解释器进行读取。

  3. 运行

    指的是JVM解释器将编译生成的.class文件翻译成机械码并执行程序显示结果。

  4. 字节码文件是一种和任何具体机器环境,操作系统无关的中间代码,是一种二进制文件。是java源文件结果java编译器编译后生成的目标代码文件。它必须由专门的java解释器来解释执行。 这个是java是解释性语言的原因

  5. JVM(java虚拟机),是一种抽象的机器,有自己的一套机器指令、栈、寄存器等运行Java程序必备的组件,是附着于具体的操作系统上的软件实现。编译后的Java程序指令不在计算机的CPU上执行,而是在JVM上执行。JVM是java跨平台特性的依据,它包含着JDK中

  6. JDK=JRE+开发工具集(如javac,java编译工具等)

  7. JRE=JVM+JAVA SE标准类库

  8. javac:是java的编译器,负责将java源代码转化成java的字节文件

java执行流程:

写源代码--->通过javac编译源代码将.java文件编译出.class的字节文件----->通过jvm虚拟机读取.class文件--->执行显示结果

java源文件编写注意规范

  1. java源文件以.java为扩展名,源文件内组成部分是Class类

  2. Java应用程序执行入口是main()方法且main方法有固定书写方式

    public static void main(String[] args){....}
    
  3. Java严格区分大小写

  4. java是由一条条语句构成,每个语句直接用 ; 结尾

  5. 一个源文件最多有一个public类,而且源文件名必须和这个Public类名一致

  6. 单行注释//

  7. 多行注释/**/

  8. 一个class类javac就会生成一个类名.class的文件,所以即使在一个.java里面写多个class那么javac也会生成多个.class文件

  9. 一般在一个.java文件中只写一个class类,这样方便分类,查看

  10. 在一个类里面只能存在最多一个main方法入口

面向过程和面向对象

面向,就是按照什么思路走

面向对象(oop)就是按照对象的思路来编程

面向过程(pop)就是按照过程的思路来编程

面向过程

面向过程是一种编程模型,由一系列要执行的计算步骤组成,通常采用自上而下、顺序执行的方式。

比如把大象放入冰箱:

面向过程分为三步:

  1. 打开冰箱
  2. 把大象放入冰箱
  3. 把冰箱关上

面向对象

面向对象是一种计算机编程模型,它围绕数据或对象而不是功能和逻辑来组织软件设计

说的更底层一点就是面向对象是一种依赖于类和对象概念的编程方式。

在java中

类:是相同种类对象的抽象,是它们的公共属性。

对象:对象是类的实例。

面向对象将一个事物描述为一个对象,这个对象包括各种属性和方法

例如上面把大象装进冰箱的例子,冰箱的属性包括:长、宽、高、温度等,方法有:打开、关闭、存储等,这些属性和方法都属于这个对象。

记住:万物皆对象

把大象放进冰箱为例进行说明,面向对象的方式为:

冰箱是一个对象,大象也是一个对象。

冰箱有自己的方法,打开、存储、关闭,有自己的属性:长、宽、高等。

大象也有自己的方法,吃、走路等,有自己的属性:体重、高度、体积等。

面向对象和面向过程的区别

  1. 安全性方面

    面向对象的封装特性将数据隐藏起来保证了数据的安全性

    面向过程没有适合的方法来隐藏程序数据

  2. 程序设计方面

    面向过程通常将程序分为一个个的函数

    面向过程是使用一个个对象,函数是对象中的一个方法

  3. 过程方面

    面向过程一般是采用自上而下的

    面向对象通常采用自下而上的方法

  4. 程序修改方面

    面向对象更容易给程序添加新功能,修改代码。

相关