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基础——对象和类的更多相关文章

  1. Java基础-对象与类

    面向对象程序设计概述 面向对象的程序设计(简称OOP)时当今主流的程序设计范型,已经取代了"结构化"过程化程序设计开发技术,Java是完全面向对象的. 类 类设计构造对象的模板或蓝 ...

  2. Java基础——对象和类

    将包含main方法的类称为主类. 变量的作用域是指变量可以在程序中引用的范围. 实例变量和静态变量的作用域是整个类,无论变量是在哪里声明的. 局部变量的声明和使用都在一个方法的内部. 一个类的实例变量 ...

  3. Java基础-DButils工具类(QueryRunner)详解

    Java基础-DButils工具类(QueryRunner)详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC ...

  4. Java基础之File类的使用

    Java基础之File类的使用 1.File类的构造方法和常用方法 2.对File中listFile(FileNameFilter name)学习 3.与File文件类相关的实现 File类的构造方法 ...

  5. Java常见对象Object类中的个别方法

    Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...

  6. Java的对象与类,继承

    Java的对象与类,继承 题目1.Java类的建立与使用 设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名.当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的 ...

  7. 你真的了解JAVA中对象和类、this、super和static关键字吗

    作者:小牛呼噜噜 | https://xiaoniuhululu.com 计算机内功.JAVA底层.面试相关资料等更多精彩文章在公众号「小牛呼噜噜 」 目录 Java对象究竟是什么? 创建对象的过程 ...

  8. spring mvc返回json字符串数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable

    1.spring mvc返回json数据,只需要返回一个java bean对象就行,只要这个java bean 对象实现了序列化serializeable 2. @RequestMapping(val ...

  9. 设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”。。。

    设计一个 Java 程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入 ABC,则没有抛出异常.(只有 ...

随机推荐

  1. PHP对XML添加节点之appendChild()方法讲解

    问题如下:<b > <c>test</c> </b>我要在b节点里面添加一个子节点比如说加一个d节点,要实现成<b > <c>t ...

  2. 【WCF--初入江湖】05 WCF异步编程

    05 WCF异步编程 一.服务设计最佳实践 在设计之初,是否用异步,应该由客户端来决定,而不应该去考虑服务的调用者调用的方式. 优点:充分利用多核CPU, 改善用户体验 缺点:滥用异步,会影响性能 二 ...

  3. Unity3D Development模式下的一个小问题

    今天客户提交了一个反馈,说测试版本的应用在按下电源键的时候屏幕变黑,然后重新按下电源键启动的时候发现没有出现屏幕锁屏的情况,直接回到应用界面. 我这边看了一下,发现如果装了360之类的手机助手就没这个 ...

  4. 设置Eclipse智能提示

    原地址:http://blog.csdn.net/sz_bdqn/article/details/4956162 今天有点时间,研究了一下MyEclispse的智能感知的功能.刚开始使用它时总是感觉如 ...

  5. 使用mysql触发器脚本,解决流水数据的添加。

    1.建立表脚本 CREATE DATABASE `spring` DEFAULT CHARACTER SET utf8; USE `spring`; CREATE TABLE `account` ( ...

  6. HDU 4509 湫湫系列故事——减肥记II(暴力模拟即可)

    看了题目后,没自己做,直接看别人题解了,这里转一下. 看了之后,突然想起scanf还可以按照自己写的格式输入数据啊,差点连这个都忘记了啊. 注意输入中时间可能有重复的. http://www.cnbl ...

  7. Android中使用HTTP和HttpClient进行通信

    /** * 使用HTTP的Get方式进行数据请求 */ protected void httpGet() { /** * 进行异步请求 */ new AsyncTask<String, Void ...

  8. hdu 4474 Yet Another Multiple Problem

    题意: 找到一个n的倍数,这个数不能含有m个后续数字中的任何一个 题解: #include<stdio.h> #include<string.h> #include<qu ...

  9. CAD导入ArcScene中线被打断 求解决方案

    cad中是这样 但在arcscene里中是这样

  10. WCF入门(二)-----实战开发

    在这个实战中我们将使用DataContract,ServiceContract来构建WCF服务,并使用VS2008内置的“WCFSVCHost”运行我们创建的WCF服务,并使用“WCF测试客户端”来测 ...