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基础语法之继承和抽象类
继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...
随机推荐
- Codeforces Round #826 (Div. 3) A-E
比赛链接 A 题解 知识点:模拟. 时间复杂度 \(O(n)\) 空间复杂度 \(O(n)\) 代码 #include <bits/stdc++.h> #define ll long lo ...
- pta第二次博客
目录 pta第二次博客 1.前言 2.设计与分析 第四次作业第一题 第四次作业第一题 第四次作业第一题 第四次作业第一题 pta第二次博客 1.前言 2.设计与分析 第四次作业第一题 1.题目: &q ...
- 【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机(ubantu18.04@Intel 82545EM)
前言 既然你已经知道TRex并尝试搜索它的安装教程,这意味着你有一定的基础知识(至少知道自己需要什么).因此本文对于TRex的介绍部分会偏少 本次主要为TRex安装过程的一次记录(版本为v3.0.0) ...
- vscode代码部署
前言 在本地环境中开发代码时,经常需要将代码上传到服务器环境中,在环境中构建并调试程序.如果手动使用scp.ftp等文件传输程序将代码上传至环境,一次两次还好,反复多次操作则有些繁琐. 为了方便进行本 ...
- mindxdl--common--errs.go
// Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.// Package common the error ...
- Go语言核心36讲38
到目前为止,我们已经一起陆陆续续地学完了Go语言中那些最重要也最有特色的概念.语法和编程方式.我对于它们非常喜爱,简直可以用如数家珍来形容了. 在开始今天的内容之前,我先来做一个简单的总结. Go语言 ...
- 刚哥谈架构(八)- 为你的应用选择合适的API
前言: 架构师的主要活动是做出正确的技术决策.选择合适的API是一项重要的技术决策.那么今天就看看API的选择问题. 应用程序编程接口(API)是一种计算接口,它定义了多个软件中介之间的交互.它定义了 ...
- dd格式化硬盘
1. dd硬盘读写测速(不做实际读写): 测试纯写入性能 dd if=/dev/zero of=/dev/sdb bs=1M count=10240 oflag=direct 测试纯读取性能 dd i ...
- 集群部署看过来,低代码@AWS智能集群的架构与搭建方案
为了帮助充分利用AWS的托管服务快速构建起一套集群环境,彻底去掉"单一故障点",实现最高的可用性,我们准备了<低代码智能集群@AWS的架构与搭建方案>看完本文,带你掌握 ...
- MathNet用到的一些功能
1.计算一元线性函数 Tuple<double, double> myLineTuple = MathNet.Numerics.Fit.Line(myXArray, myYArray); ...