Java语言与面向对象的程序设计
程序员文章站
2022-04-06 20:52:56
...
这几天很迷茫,听老师介绍了一款软件~中国大学MOOC。刚好我是软件专业的学生,索性听了北京大学老师的一节关于Java的讲课,果断被震撼到了,他们的讲课给人一种很深刻(深入)的感觉。我今天就把老师讲到的东西记了下来,以便于有兴趣的朋友阅读…
Java分为三大平台
- Java SE 标准版
- Java EE 企业版
- Java ME 微型版
Java的开发工具包 JDK(Java Development Kit)
Java的推动力:JCP与JSR
Java是一种编程语言
- 它是一种面向对象的编程语言(OOP)
- 它的语法结构与C和C++语言极为相似
- Java所用的语法十分简单
Java的特点
- 简单一些
- 面向对象
- 平台无关性
- 安全稳定
- 支持多线程
丰富的类库
Java提供了大量的类以满足网络化、多线程、面向对象的系统需要
- 语言包(package)
- 实用程序包
- I/O包
- 网络包
- 图形用户界面包
- And More…
Q:Java 可以干什么
A:如下
- 面向对象的应用开发
- 各类网络应用程序的开发
- 计算过程的可视化
- 动态界面/交互操作
- Internet的系统管理
- 数据库操作
- And More…
Java是C++–
- 无直接指针操作
- 自动内存管理
- 数据类型长度固定
- 不用头文件
- 不包括结构和联合
- 不支持宏
- 不支持多重继承
- 无类外全局变量
- 无GOTO
Java运行机制
Java三种核心机制
- Java虚拟机(JVM)
- 代码安全性检测(Code Security)
- 垃圾收集机制(Garbage Collection)
Java的编译与运行
Java虚拟机(JVM)
- 在一台计算机上由软件或硬件模拟的计算机。
- Java虚拟机(JVM)读取并处理经编译过的字节码class文件。
- Java虚拟机规范定义了:
- 指令集
- 寄存器集
- 类文件结构
- 栈堆
- 垃圾回收堆
- 内存区域
Java运行环境(JRE)
- JRE(The Java Runtime Environment)
- JRE = JVM+API(Lib)
- JRE运行程序时的三项主要功能:
- 加载代码:由class loader完成;
- 校验代码:由bytecode verifier完成;
- 执行代码:由runtime interpreter完成。
Java自动垃圾回收技术
- 垃圾回收(garbage collection)
- 在C/C++等语言中,由程序员负责回收无用内存
- Java语言自动垃圾回收
- 系统级线程跟踪存储空间的分配情况
- 在JVM的空间时,检查并释放那些可被释放的存储器空间
- 程序员无须也无法精确控制和干预该回收过程
JDK(Java开发工具包)
JDK = JRE+Tools
JRE(运行环境) = JVM+API
JDK下载
- 要开发Java程序,要下载JDK
- http://java.sum.com
- 可以只下载JavaSE
- 注意:如果只运行Java程序,则只下载JRE
- http://java.com
- JDK提供的工具
- java编译器 javac.exe
- java执行器 java.exe
- 文档生成器 javadoc.exe
- java打包器 jar.exe
- java调试器 jdb.exe
面向对象程序设计
对象
对象具有两方面的含义:
- 在现实生活中:
- 是客观世界中的一个实体
- 在计算机世界中:
- 是一个可标识的存储区域
类(class)
- 类:具有共同属性和行为的对象集合
- 属性:变量(字段 field)
- 行为:函数(方法 method)
- 类与对象的关系
- 类是对象的抽象(模板)
- 对象是类的实例
- 注:类和对象有时候都统称为“对象”,为了明确起见,后者称为“对象实例”。
Person类
class Person{
int age;
String name;
void sayHello(){...}
}
对象实例化
Person person = new Person();
面向对象的三大特征
- 封装性
- 继承性
- 多态性
封装
模块化:将属性和行为封装在类中,程序定义很多类。
信息隐蔽:将类的细节部分隐藏起来,用户只通过受保护的接口访问某个类。
class Person{
private int age;
public int getAge(){
return age;
}
public void setAge(int a){
age=a;
}
String name;
void sayHello(){...}
}
继承(inheritance)
- 继承性
- 父类和子类之间共享数据和方法
- 继承的好处
- 更好的进行抽象与分类
- 增强代码的重用性
- 提高可维护性
父类
class Person{
int age;
String name;
void sayHello(){...}
}
子类
class Student extends Person{
String school;
double score;
void meetTeacher(){...}
}
多态性
- 多态
- 不同的对象收到同一个消息(调用方法)可产生完全不同的效果
- 实现的细节则由接受对象自行决定
- 例 foo(Person p ){ p.sayHello(); }
- foo( new Student() );
- foo( new Teacher() );
面向对象设计思想的要点
- 认为客观世界由各种对象组成
- 程序的分析和设计都围绕着
- 有哪些对象类
- 每个类有哪些属性、哪些方法
- 类之间的关系(继承、关联等)
- 对象之间发送消息(调用方法)
上一篇: java面向对象