一天一个Java基础——对象和类
1.在Java中你所做的全部工作就是定义类,产生那些类的对象,以及发送消息给这些对象
2.可以在类中设置两种类型的元素:字段(也被称作数据成员)和方法(也被称作成员函数)
3.字段可以是任何类型的对象,可以通过其引用与其进行通信;也可以是基本类型中的一种。如果字段是对某个对象的引用,那么必须初始化该引用,以便使其与一个实际的对象向关联(使用new来实现)
4.可以把两个类放在同一个文件中,但是文件中只能有一个类是公共的。此外,公共类必须与文件同名
1.1 构造方法构造对象
构造方法是一种特殊的方法,具有以下三种特殊性:
1)构造方法必须具备和所在类相同的名字
2)构造方法没有返回类型,甚至连void也没有
3)构造方法是在创建一个对象使用new操作符时调用的。构造方法的作用是初始化对象
构造方法也可以重载,也就是可以有多个同名的构造方法,但它们要有不同的签名
1.2 访问对象的数据和方法
若类的某个成员是基本数据类型,即使没有进行初始化,Java也会确保它获得一个默认值(在类中可以声明无初始值的变量,但在方法中不能声明无初始值的临时变量)
引用类型数据域默认值是null,数值类型默认值是0,boolean类型为false,char为‘\u0000’
但是Java没有给方法中的局部变量赋默认值
每个变量都代表一个存储值的内存位置,基本类型变量的内存中存储的是一个基本类型值,而引用类型变量存储的是一个引用,它指向对象在内存中的位置
当引用变量被赋值予另一个新引用后,原来的引用的对象就不再有用,因此就变成了垃圾(garbage),占用了内存空间,所以Java运行系统会检测垃圾并自动回收它所占的空间,这个过程称为垃圾回收(garbage collection)
1.3 静态变量、常量和方法
如果想让一个类的所有实例共享数据,就要使用静态变量(static variable),也称为类变量(class variable)。静态变量将变量值存储在一个公共的内存地址。因为它是公共的地址,所以如果某一个对象修改了静态变量的值,那么同一个类的所有对象都会收到影响。Java支持静态方法和静态变量,无须创建类的实例就可以调用静态方法(static method)
1 public class test2 { 2 public static void main(String[] args) { 3 /* 4 * 类中变量是否为静态的区别 5 */ 6 Test4 t1 = new Test4(); 7 System.out.println(t1.id); 8 t1.id = 4; 9 System.out.println(t1.id); 10 Test4 t2 = new Test4(); 11 System.out.println(t2.id); 12 } 13 } 14 class Test4{ 15 /* 若为static int id = 1; 16 * 则运行结果为 1 4 4 17 */ 18 int id = 1; 19 /* 20 * 运行结果为 1 4 1 21 */ 22 public void a1(){ 23 id++; 24 } 25 public void a2(){ 26 id++; 27 } 28 }
一天一个Java基础——对象和类相关推荐
- Java基础----对象与类
一.面向对象程序设计概述 面向对象程序设计(oop) 二.类 类(class)是构造对象模板或蓝图 由类构造(construct)对象的过程称为创建类的实例(instance) 封装是处理对象的一个重 ...
- Java基础:String类
相关阅读 Java基础:String类 Java字符串格式化 Java基础:正则表达式 1. 概述 字符串是由多个字符组成的一串数据(字符序列),字符串可以看成是字符数组. 在实际开发中,字符串的操作 ...
- 多重继承_Python 和 Java 基础对比 10 —— 类的封装、继承和多态
@Python大星 一.Python 类的封装.继承和多态 封装 继承 Python 支持多父类的继承机制,所以需要注意圆括号中基类的顺序,若是基类中有相同的方法名,并且在子类使用时未指定,Pytho ...
- 一文带你深入理解【Java基础】· 枚举类
写在前面 Hello大家好, 我是[麟-小白],一位软件工程专业的学生,喜好计算机知识.希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!! ...
- 【狂神说笔记—— Java基础07-常用类】
Java基础07-常用类 Object类 大家都知道Object是所有类的父类,任何类都默认继承Object. 理论上Object类是所有类的父类,即直接或间接的继承java.lang.Object类 ...
- Java基础复习-常用类
Java基础复习-常用类 本文仅对学习过程中所缺java知识点的查缺补漏复习 String 代表字符串.Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现. St ...
- 《Java程序设计》实验报告——Java的对象与类
浙江理工大学 <Java程序设计> 实验报告 20 19-20 20学年第 1学期 学 院 信息学院 班 级 计算机科学与技术18(3) 姓 名 申屠志刚 学 号 2 ...
- Java的对象和类,构造器详解
Java的对象和类 package OPP;//学生的类,一个类中只存在属性和方法 public class Student {//属性String name;//没有赋值默认值为nullint ag ...
- java对象与类ppt,JAVA语言对象与类.ppt
JAVA语言对象与类.ppt 第三章 对象与类,3.1 类与对象 3.2 定义类 3.3 成员变量的作用域 3.4 方法重载 3.5 创建对象 3.6 构造方法 3.7 this关键字 3.8 初始化 ...
最新文章
- 9.LeetCode第350题---两个数组的交集2
- python爬虫抓取数据的步骤-Python爬虫抓取手机APP的传输数据
- python画椭圆-Python易学就会(五)turtle绘制椭圆与递归
- 前端导出文件,后端返回文件流过大直接干崩溃
- 计算属性computed的使用
- L1-070 吃火锅 (15 分)-PAT 团体程序设计天梯赛 GPLT
- Markdown:继续编号列表
- 8光12电ERPS工业级环网交换机 PLC自动化环网柜一键环网交换机
- vijos 1002
- WinRAR 永久去除弹窗广告
- 【web素材】04—40款个人主页简历网页模板及企业单页
- python错题集(1)
- ARM模拟器-skyeye(天目)的安装和使用!
- ubuntu18.04-ros-melodic-carlar安装教程详细指南
- ToF相机从Camera2 API中获取DEPTH16格式深度图
- 卡在linuxctrld进系统_centos7系统停在Ctrl+d界面的解决方法
- UnityShader 图片或者颜色混合模式详解
- 外链分享已取消无法下载怎么办_热点 | 手机号码归属地能否取消?工信部回应......
- Qt中注册定义类型qRegisterMetaType和Q_DECLARE_METATYPE的总结
- 专访|威威玮炜蜜汁同框的背后,看ofo小黄车的野心与坚持