学习笔记--初识Java面向对象
面向对象与面向过程的区别
面向过程:主要关注具体过程,因果关系
- 优点:对于业务逻辑比较简单的程序,可以得到快速开发,前期投入成本比较低
- 缺点:由于面向过程的使用让程序间的元素“耦合度”过高,导致程序维护不便,且可拓展性差
面向对象:主要关心对象【独立体】能完成哪些功能
- 优点:耦合度低,可拓展性强,组件复用性高
- 缺点:前期投入成本高,概念抽象,对于对象【独立体】构建不易
面向对象的三大特征
- 封装
- 继承
- 多态
采用面向对象编程的过程:
- 面向对象的分析:OOA
- 面向对象的设计:OOD
- 面向对象的编程:OOP
类与对象的概念
什么是类?
- 类是一概念,是由人思考抽象的结果
- 类代表了一类事物,人对现实中个体的共同特征进行总结归纳成一个概念,称之为【类】
- 类可以看成是创建 Java 对象的模板
什么是对象?
- 现实中实际存在的个体
类中有属性和行为
- 属性:状态信息,自带的特征,比如【花】这个类,
颜色就是属性 - 行为:动作信息,能与环境完成交互,比如【狗】这个类,
吃、跑等就是行为
类的定义
语法结构:
[修饰符列表] class 类名{
属性;
方法;
}
重点:
- 属性通常是采用一个变量的形式来完成定义
- 行为则是通过方法来描述
例子(定义一个学生类):
首先,分析一下
学生类学生有什么属性
学号
姓名
年龄
. . .
学生有什么行为
学习
吃饭
睡觉
. . .
// 定义一个学生类
public class Student{
// Student 属于类 是引用数据类型,类似 String
// 类体 = 属性 + 方法
/*
学号信息不能直接通过“类”访问,所以这种成员变量又被称作:实例变量
对象又被称作实例,实例变量就是对象变量【对象级别的变量
不创建对象,id 变量的内存空间是不存在的
*/
int id; // 学号
String name; // 姓名
int age; // 年龄
}
对象的创建和使用
在Java代码中
什么是对象?
new 运算符在堆内存中开辟的内存空间被称为对象
什么是引用?
引用是一个变量,只不过这个变量中保存了另一个Java对象的内存地址
Java中引用与C语言中的指针区别
- Java中引用程序员不能直接操作堆内存
- C中能使用指针对内存自由操作
引用的操作:
- 读取数据:
引用.变量名 - 修改数据:
引用.变量名 = 值
public class OOTest01{
public static void main(String[] args){
// new 是一个Java语言中的一个运算符
// new 运算符的作用创建对象,在JVM的堆内存中开辟新的内存空间
// 栈内存(局部变量):方法代码片段执行的时候,会给该方法分配内存空间,在栈内存中压栈
// 堆内存:new 创建的对象在堆中存储
Student jom = new Student();
jom.id = 1;
jom.name = "Jom";
jom.age = 18;
System.out.println(jom.name + "的学号:" + jom.id);
System.out.println(jom.name + "的年龄:" + jom.age);
}
}
/*
局部变量在栈内存中存储
成员变量中的实例变量在堆内存的java对象内部存储
实例变量是一个对象一份,个算个的
*/
注意:上面两个文件在同一个目录
Java面向对象
- 初识Java面向对象
- 区分Java中类与对象
- 面向对象的封装性
- Java构造方法
- Java中this关键字
- Java中static关键字
- Java面向对象的继承
- Java中final关键字
- package和import
学习笔记--初识Java面向对象的更多相关文章
- Java程序猿的JavaScript学习笔记(6——面向对象模拟)
计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...
- 学习笔记之Java程序设计实用教程
Java程序设计实用教程 by 朱战立 & 沈伟 学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html) 国庆休假前学习了 ...
- SSH 框架学习之初识Java中的Action、Dao、Service、Model-收藏
SSH 框架学习之初识Java中的Action.Dao.Service.Model-----------------------------学到就要查,自己动手动脑!!! 基础知识目前不够,有感性 ...
- JavaSE入门学习21:Java面向对象之接口(interface)(二)
一接口实现的多态 在上一篇博文:JavaSE入门学习20:Java面向对象之接口(interface)(一)中提到了接口的实现存在多态性,那么 这一篇主要就要分析接口实现的多态. 实例一 Test.j ...
- JavaSE入门学习24:Java面向对象补充
一Java中的Object类 Object类是全部Java类的父类.假设一个类没有使用extendskeyword明白标识继承另外一个类,那么这个类默认 继承Object类. public class ...
- JavaSE学习笔记(一)----java基础
本文来自博客园,作者:{张果},转载请注明原文链接:{JavaSE学习总结(一)--java基础} 一.Java是什么 Java 是由 Sun Microsystems 在 1995 年首先发布的编程 ...
- 【知了堂学习笔记】java 自定义异常
java 常见异常种类(Java Exception): 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCas ...
- java学习笔记之Java的特点
Java在如今的发展趋势而言,一直都是处于流行的原因自然也是随之而存在的. java的特点如下几个方面: 1.简单性 Java 实际上是一个 C++去掉了复杂性之后的简化版.如果读者没有编程经验,会发 ...
- Arduino学习笔记① 初识Arduino
1.前言 近段时间,博主陆续更新了ESP8266学习笔记,主要开发平台是Arduino.但是,对于很多无基础的初学者来说,甚至不了解Arduino是什么.因此,博主决定加入一个Arduino学 ...
- Java学习笔记之—Java基础
将学习到的JAVA基础用xmind记录了下来,需要原件的可以私信
随机推荐
- winform——windows 服务的安装 卸载 启动 停止
安装服务和卸载服务采用process启动命令行的方式.启动服务和停止服务用到了 System.ServiceProcess.ServiceController这个类. 程序是这样运行的,首先启动服 ...
- Android 12(S) MultiMedia Learning(三)MediaPlayer Native
上一篇MediaPlayer中看到实现一个最简单的播放器只需要5个接口,接下来会看看这些接口实现内容 /************************************************ ...
- .net C# System.Text.Json 如何将 string类型的“true”转换为布尔值 解决方案
直接上解决方法的代码 先定义一个转换顺,代码如下: public sealed class AnhBoolConverter : JsonConverter<bool?> { public ...
- 深入浅出Java异常机制
一次对Java异常机制的理解 近期有一个对接三方接口的任务,在这个过程中用到了许多 try-catch 处理,发现自己对异常处理是一知半解,浅浅研究了一下,记录一下,也帮助小伙伴如何正确使用 try- ...
- WPF使用事件聚合器,实现任意页面跨页通信
前言:最近几天有好几个小伙伴玩WPF,遇到不同页面,不知道要怎么传递消息.于是,我今天就来演示一个事件聚合器的玩法,采用prism框架来实现.作为福利,内容附带了主页面打开对话框时候直接通过参数传递消 ...
- nonatomic 带来的线程安全问题
一.结论 一个对象对外暴露的读写属性,如果这个属性在多个线程中访问,一定会出现crash. 因此对外暴露的属性一定要考虑线程安全问题. 二.看下面的代码 下面的代码一定会crash,除非obj是ato ...
- MySQL学习笔记-事务
事务 事务:是一组操作的集合,是一个不可分割的工作单位,事务会把所有操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败(当操作中某一步出现异常时,前面已执行的步骤也会失 ...
- C#开源实用的工具类库,集成超过1000多种扩展方法
前言 今天大姚给大家分享一个C#开源(MIT License).免费.实用且强大的工具类库,集成超过1000多种扩展方法增强 .NET Framework 和 .NET Core的使用效率:Z.Ext ...
- Linux Topicons Plus桌面工具安装
Topicons Plus是Linux系统GNOME桌面环境的工具,方便于在工具栏显示应用小图标. 1.进入GNOME商店搜搜下载TopIcons Plus工具.下载路径:https://extens ...
- Filter过滤器进行统一参数处理demo
Filter过滤器进行统一参数处理demo import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet. ...