一天一个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)
public class test2 {
public static void main(String[] args) {
/*
* 类中变量是否为静态的区别
*/
Test4 t1 = new Test4();
System.out.println(t1.id);
t1.id = 4;
System.out.println(t1.id);
Test4 t2 = new Test4();
System.out.println(t2.id);
}
}
class Test4{
/* 若为static int id = 1;
* 则运行结果为 1 4 4
*/
int id = 1;
/*
* 运行结果为 1 4 1
*/
public void a1(){
id++;
}
public void a2(){
id++;
}
}
一天一个Java基础——对象和类的更多相关文章
- Java基础-对象与类
面向对象程序设计概述 面向对象的程序设计(简称OOP)时当今主流的程序设计范型,已经取代了"结构化"过程化程序设计开发技术,Java是完全面向对象的. 类 类设计构造对象的模板或蓝 ...
- Java基础——对象和类
将包含main方法的类称为主类. 变量的作用域是指变量可以在程序中引用的范围. 实例变量和静态变量的作用域是整个类,无论变量是在哪里声明的. 局部变量的声明和使用都在一个方法的内部. 一个类的实例变量 ...
- Java基础-DButils工具类(QueryRunner)详解
Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...
- Java基础之File类的使用
Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...
- Java常见对象Object类中的个别方法
Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...
- Java的对象与类,继承
Java的对象与类,继承 题目1.Java类的建立与使用 设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名.当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的 ...
- 你真的了解JAVA中对象和类、this、super和static关键字吗
作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ...
- spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable
1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...
- 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。
设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...
随机推荐
- check environment var
田+R cmd set XXX check environment var
- 弱弱的玩下Javascript
前言 好久没有更新博客了,也蛮少捣弄javascript,今儿看到一个题目,关于给你一个面板,你可以随意的在上面画矩形,可以移动和删除任意一个你创建的矩形,心血来潮搞着玩哈,实现起来挺简单的,但这代码 ...
- Unity3D脚本中文系列教程(十四)
http://dong2008hong.blog.163.com/blog/static/469688272014032134394/ WWWFrom 类Unity3D脚本中文系列教程(十三)辅助类. ...
- POJ 1922 Ride to School(贪心+模拟)
题意:起点与终点相隔4500米.现Charley 需要从起点骑车到终点.但是,他有个习惯,沿途需要有人陪伴,即以相同的速度, 与另外一个人一起骑.而当他遇到以更快的速度骑车的人时,他会以相应的速度跟上 ...
- hdu 4686 Arc of Dream
思路:构造矩阵 a[i]*b[i]=ax*bx*a[i-1]*b[i-1]+ax*by*a[i-1]+ay*bx*b[i-1]+ay*by 代码如下: #include<iostream> ...
- hdu 1796 How many integers can you find
容斥原理!! 这题首先要去掉=0和>=n的值,然后再使用容斥原理解决 我用的是数组做的…… #include<iostream> #include<stdio.h> #i ...
- Android 注意在finish Activity之后也要停止正在运行的请求
如果在一个Activity里面启动了网络请求,而在这个网络请求还没返回结果的时候,如果Activity被结束了,则我们需要写如下代码作为防守: @Override public void onPost ...
- Arcgis Engine最短路径分析
ArcEngine 最短路径分析(源码) using System; using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geometry; using ESRI ...
- Git教程之时光穿梭(3)
我们已经成功地添加并提交了一个readme.txt文件,现在我们继续修改readme.txt文件,改成如下内容:
- 各种分区类型对应的partition_Id
ID Name Note == ==== ==== 00h empty [空] 01h DOS 12-bit FAT [MS DOS FAT12] 02h XENIX root file system ...