Java基础学习笔记-类与对象
对象
- 名称唯一
- 属性、数据区(值)
- 方法、功能
类
- 在软件中,类是一个模板,定义了一类事物的状态和行为
- 类是一种抽象的复合数据类型
类与对象的关系,这个跟JS也差不多
- 类和对象之间是抽象和具体的关系。
类是创建对象的模板,对象是类的具体实例 - 类(class)是总称,对象是个体,因此对象(object)也叫实例(instance)。
- 需求中提取类,即抽象的过程。
- 创建一个类就是创建一个新的数据类型,实例化一个类,就得到一个对象。
- 类的构成分别是成员变量和成员方法
- 类的成员变量可以是基本类型、复合数据类型、数组、集合等
- 类的成员方法用于处理该类的数据
类的定义
- 格式

- 关键字class表示类定义的开始
- 修饰符分为访问控制符、类型说明符
1.类的类型说明符:final、abstract
2.类的访问控制符:public、默认(没有访问控制符)
公共类能被其它所有的类访问和引用。
一个Java源程序中只能有一个public类,这个类一般含有main方法
不用public定义的类,只能被同一个包中定义的类访问和引用
对象的生成、使用、内存释放
构造函数(Constructor) 是一类特殊的成员方法 ,用new 初始化 新创建对象
- 类名 对象名 = new 构造函数(实际参数)
- 从形式上来讲,它有以下特点:
与类同名
没有任何返回值;
在语法结构上与一般方法相同 - new关键字的作用
为对象分配内存空间
引起对象构造方法的调用。
为对象返回一个引用(地址) - 类的默认构造函数
Object就是默认的父类
如果类中没有定义构造函数,编译器会自动创建一个默认的不带参数的构造函数
为类定义了构造函数,就不会出现被默认创建的情况了
如果类中提供的构造函数都不是无参数构造函数,却调用无参数构造函数初始化此类的对象,编译时会产生语法错误
对象的创建及使用
Person p1=new Person(“flower”,”pink”,23)
Person p2=p1;// 此时p2拿到的是个引用的地址哦,这个跟JS一样
Java内存释放
判断一个存储单元是否是垃圾的依据是:该存储单元所对应的对象是否仍被程序所用。
判断一个对象是否仍为程序所用的依据是:是否有引用指向该对象。
- 自动回收机制。
Java虚拟机后台线程负责内存的回收 - 强制回收机制
System.gc() 强制立即回收垃圾,但系统并不保证会立即进行垃圾回收
Java的垃圾收集器自动扫描对象动态内存区,对引用对象标记,把没有引用的对象收集并释放
java虚拟机可自动判断并收集到“垃圾”, 但一般不会立即释放
Java系统自己定义了一套垃圾回收算法,用来提高垃圾回收效率
Java内存强制回收没有提供析构方法,但提供了一个类似的方法:protected void finalize()
Java虚拟机在回收对象存储单元之前先调用该对象的finalize方法,如果该对象没有定义finalize方法, 先调用该对象默认的finalize方法。

这是我作为一名前端,第一次学习JAVA,如果本文有错误,欢迎路过的小哥哥小姐姐们帮助我纠正错误哦~~
Java基础学习笔记-类与对象的更多相关文章
- 《python基础教程(第二版)》学习笔记 类和对象(第7章)
<python基础教程(第二版)>学习笔记 类和对象(第7章) 定义类class Person: def setName(self,name): self.name=n ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- Java基础学习笔记(一)
Java基础学习笔记(一) Hello World 基础代码学习 代码编写基础结构 class :类,一个类即一个java代码,形成一个class文件,写于每个代码的前端(注意无大写字母) XxxYy ...
- java基础学习笔记五(抽象类)
java基础学习总结——抽象类 抽象类介绍
- Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符 public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是一种权 ...
- Java学习笔记--类和对象
1.介绍面向对象的编程 面向对象是现在主流的编程样例,它替代了以前C语言使用时的“结构体”,Java是一门面向对象的语言,所以需要熟悉面向对象的概念.面向对象的程序由很多对象组成,每 ...
- Java基础学习笔记: 多线程,线程池,同步锁(Lock,synchronized )(Thread类,ExecutorService ,Future类)(卖火车票案例)
多线程介绍 学习多线程之前,我们先要了解几个关于多线程有关的概念.进程:进程指正在运行的程序.确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能. 线 ...
- Java基础学习笔记之:System类;Math类;Arrays类BigInteger,BigDecimal
System类 在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作.System类不能手动创建对象,因为构造方法被priva ...
- Java基础学习笔记七 Java基础语法之继承和抽象类
继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...
随机推荐
- LcdTools如何导出内置画面为bmp图片
运行LcdTools,先设置好图片所需分辨率参数,点击"画面设置"栏,修改下图所示参数 点击"画面设置"栏,在"画面资源"栏找到需要导出的画 ...
- 解决ffmpeg的播放摄像头的延时优化问题(项目案例使用有效)
在目前的项目中使用了flv的播放摄像头的方案,但是延时达到了7-8秒,所以客户颇有微词,没有办法,只能开始优化播放延时的问题,至于对接摄像头的方案有好几种,这种咱们以后在聊,今天只要聊聊聊优化参数的问 ...
- k8s运维之pod排错
k8s运维之pod排错 K8S是一个开源的,用于管理云平台中多个主机上的容器化应用,Kubernetes的目标是让部署容器化变得简单并且高效 K8S的核心优势: 1,基于yaml文件实现容器的自动创建 ...
- 嵌入式学习-c语言篇01:搭建C语言环境
使用NotePad++和gcc编译器来搭建c语言环境 NotePad++:C语言编码器 gcc:C语言编译器 这两个软甲可以去官网下载 下载好进入该文件夹,如图: 添加环境变量:直接cmd,运行gcc ...
- SQL-GROUP BY语句在MySQL中的一个错误使用被兼容的情况
首先创建数据库hncu,建立stud表格. 添加数据: create table stud(sno varchar(30) not null primary key,sname varchar(30) ...
- 【经验分享】配置用户通过Console口登录设备示例
组网需求 当用户无法进行远程登录设备时,可通过Console口进行本地登录.缺省情况下,使用Console用户界面登录设备时只需要密码认证.为了防止非法用户登录设备,修改Console用户界面的认证方 ...
- 深度学习之Tensorflow入门
声明 本文参考[中文][吴恩达课后编程作业]Course 2 - 改善深层神经网络 - 第三周作业_何宽的博客-CSDN博客我对这篇博客加上自己的理解,力求看懂 本文所使用的资料已上传到百度网盘[点击 ...
- Python基础之数据库:2、MySQL的下载与安装、基本使用、系统服务制作
目录 一.MySQL简介 二.安装与下载 1.下载流程 2.配置环境变量 三.主要目录介绍 四.基本使用 五.系统服务的制作 六.密码相关 1.修改管理员密码 2.忘记密码 一.MySQL简介 M ...
- 关于cannot remove ‘directory': Directory not empty的解决办法
解决方法 首先你应该使用 rm -rf 目录名 这样确保可以递归删除目录 如果出现 cannot remove 'directory': Directory not empty 报错信息,重启电脑解决 ...
- ArcObjects SDK 012 PageLayout和Page
1.从ArcMap角度看结构 一个Mxd文件包含一个PageLayout对象和一个多多个Map对象,每个Map会被包成MapFrame,添加到PageLayout中.我们用ArcMap打开一个mxd文 ...