J2SE基础:2.对象的创建与使用

1:参数传递的值传递与引用传递

A:值传递:基本数据类型传递都是值传递

B:引用传递(地址传递):对象数据类型都是引用传递。

2:类变量与成员变量(实例变量,对象变量)

类变量:通过类名调用,类变量被所有的实例共享。

final static int MAX = 20;//Java中定义常量

对象变量:通过对象调用(对象必须new出来)。

3:类方法与成员方法(实例方法,对象方法)

类方法:通过类名调用,在类方法中不能使用this关键字。

因为this代表当前对象。

成员方法:通过对象调用(对象必须new出来)。

4:

构造方法

销毁方法(finalize)

销毁方法是在对象被销毁的时候进行调用的。

当一个对象在堆区没有一个明确的引用指向它的时候,Java虚

拟机认为该对象是无用的。

垃圾回收器是用于回收堆区分配的对象。 垃圾回收器只会回收3次的

的内存。垃圾回收器是虚拟机自动调用的。(堆区内存不够的情况下调用)

但是可以通过System.gc()来强制运行垃圾回收器。

5:static静态块与对象块

寻找main方法--->加载类--->加载类的静态块代码(只初始化一次)

--->加载类的静态方法和静态变量(只初始化一次)---->对象块方法

--->对象的构造方法--->调用对象的方法--->执行对象的销毁方法。

//成绩类
class Score
{
	int english;
	int math;
	int chinese;
	Score(){

	}

	Score(int english,int math,int chinese){
		this.english = english;
		this.math = math;
		this.chinese = chinese;
	}
}

class Student{
	int stuid;
	String stuname;
	String stusex;
	//将成绩类做为学生类的一个属性。
	Score score;

	public Student(Score score){
		this.score = score;
	}

	public int getTotalScore(){
		return this.score.english +this.score.math +this.score.chinese;
	}

	public void changeScore(Score score){
		score.chinese = 0;
		score.math = 0;
	}
}

public class Test_02{
	public static void main(String args[]){
		Score score_one = new Score(70,60,65);
		//score_one.english = 70;
		//score_one.math = 60;
		//score_one.chinese = 65;

		Score score_two = new Score();
		score_two.english = 11;
		score_two.math = 12;
		score_two.chinese = 13;

		Score score_three = new Score(45,46,47);
		//score_three.english = 45;
		//score_three.math = 46;
		//score_three.chinese = 47;

		Student stu_one = new Student(score_three);
		Student stu_two = new Student(score_two);
		Student stu_three = new Student(score_one);

		/*
		System.out.println(stu_one.getTotalScore());
		System.out.println(stu_two.getTotalScore());

		score_three.english = 70;

		stu_one.score.math = 23;

		System.out.println(stu_one.getTotalScore());
		System.out.println(stu_two.getTotalScore());

		*/
		System.out.println(stu_one.getTotalScore());//138

		stu_one.changeScore(score_two);

		System.out.println(stu_one.getTotalScore());//138

		stu_one.changeScore(score_three);

		System.out.println(stu_one.getTotalScore());//45

		System.out.println(stu_two.getTotalScore());
	}
}
public class Test_03
{
	int id;
	final static int MAX = 20;

	public static void main(String args[]){
		//Test_03 test = new Test_03();
		//System.out.println(test.MAX);
		System.out.println(Test_03.MAX);

	}
}
class Person
{
	int personid;
	String personname;

	public Person(){
		System.out.println("对象的构造方法");
		this.personid = 1;
		this.personname = "中国人";
	}

	public void method(){
		System.out.println("执行方法");
	}

	public void finalize(){
		System.out.println("对象被销毁了");
		this.personid = 0;
		this.personname = null;
	}
}
public class Test_04
{
	public static void main(String args[]){
		Two();

		System.gc();
	}

	public static void Two(){
		//创建对象
		Person person = new Person();

		//用对象
		person.method();
	}

}
public class Test_05
{
	//加载类时,最早执行的一块初始化内容。
	static{
		System.out.println("静态块");
	}

	//加载类时,静态方法与静态变量都已经放到内存的静态区域中了。
	public static void staticMethod(){
		System.out.println("static方法");
	}

	//对象块的内容,在对象初始化之前执行的内容
	{
		System.out.println("对象块方法");
	}
	//对象的构造方法
	public Test_05(){
		System.out.println("构造方法");
	}

	public void objectMethod(){
		System.out.println("对象方法");
	}

	public static void main(String args[]){
		Test_05.staticMethod();

		Test_05 test = null;
		test = new Test_05();
		test.objectMethod();

		Test_05 test2 = null;
		test2 = new Test_05();
		test2.objectMethod();
	}
}
class  Two
{
	static{
		System.out.println("Two的静态块");
	}
}

J2SE基础:2.对象的创建与使用

时间: 2024-12-14 04:24:22

J2SE基础:2.对象的创建与使用的相关文章

J2SE基础:3.对象的创建与使用类的命名空间和訪问权限

1:package包. 包(package)是类的容器.用来保存划分类名空间. 逻辑意义对类进行划分. 解决同名的类的冲突问题. 2:package的命名规范: A:package必须写在源文件的第一行. B:package名一律使用小写. C:(建议)package使用公司的域名倒过来. www.demo.com com.demo.项目名称.模块名称 3:包在逻辑上是以命名空间划分的. 在物理上是以文件系统路径划分的. com.demo.one 将类编译好后,要将编译好的类放到com/demo

[ Java学习基础 ] Java对象的创建和销毁

类实例化可生成对象,实例方法就是对象方法,实例变量就是对象属性.一个对象的生命周期包括三个阶段:创建.使用和销毁. 创建对象 创建对象包括两个步骤:声明和实例化. 声明 声明对象与声明普通变量没有区别,语法格式如下: type objectName; 其中type是引用类型,即类.接口和数组.示例代码如下: String name; 该语句声明了字符串类型对象name.可以声明并不为对象分配内存空间,而只是分配一个引用. 实例化 实例化过程分为两个阶段:为对象分配内存空间和初始化对象,首先使用n

J2SE基础:1.类和对象基础

什么是对象 在Java语言,所有的人,事物或者模块都是一个对象. 相同的对象具有一些相同的特性. 狗,猫,蛇3个对象(动物的对象) 苹果,梨,桔子3个对象(水果的对象) 什么是类 可以将现实生活中的对象经过抽象 这种抽象数据类型称为类. 动物类(Animal) 水果类(Fruit) 类和对象的关系 类是对象的模板(抽象化表示),对象是类的实例化(具体化的展现) 类的组成结构 Java是纯面向对象(除了8种基本数据类型) 而对象是从类产生的.因此类是组成Java程序最基本也是最核心的 元素. 变量

C++基础知识(六)--类--成员函数的定义--对象的创建与使用--从面向过程到面向对象

一.类 1.类是一种数据类型,将数据与对数据的操作(函数)放到一起.一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口,对象之间通过消息进行通讯. 2.如果在类的起始点无访问说明符,系统默认为私有(private) 3.类是一种数据类型,定义时系统不为类分配存储空间,所以不能对类的数据成员进行初始化.类中的任何数据成员也不能使用关键字extern,auto,register等关键字限定其存储类型 二.成员函数的定义 1.函数定义:通常在类定义中,成员函数仅做声明,函数

Java面试题(1)-J2SE基础

最近在为自己实习准备,看了网上各种面试经验贴,也和身边的小伙伴一起参加了不少牛逼IT企业的面试,这篇文章就将面试遇到的一些比较常见的问题整理一下,给大家一些参考,也为自己整理整理. J2SE基础 1.九种基本数据类型的大小,以及他们的封装类. Java的九种基本数据类型: byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间. short:16位,最大数据存储量是65536,数据范围是-32768~32767之间. int:32位,最大数据存储容量是2的32次方减1,数据

图解java对象的创建过程

前面几篇博文分别介绍了JAVA的Class文件格式.JVM的类加载机制和JVM的内存模型,这里就索性把java对象的创建过程一并说完,这样java对象的整个创建过程就基本上说明白了(当然你要有基础才能真正看明白).经常有人问我为什么这么喜欢钻研底层的东西,首先,因为我以前的做硬件的和嵌入式的,兴趣使然:其次,我个人感觉,如果不把上下打通,心里老是有一堵墙过不去,说白了,这是个人因素,与好坏无关(当然,经常有人说,懂底层原理是成为高手的必经之路). 现在来说一下我当初学习JVM的原因,在学习JAV

VBS基础篇 - 对象(1) - Class对象

VBS基础篇 - 对象(1) - Class对象 相信对JAVA有一定了解的朋友一定对类这个名词不陌生,但是大家可能没有想过在VBS中使用Class类吧,其实Class类在自动化测试中是相当常用的,对于代码量增大时,类的结构化就充分体现出了它强大的优势,下面我们就来看一下类的组成部分以及一些用法. 初始化与终结化的应用 使用Class语句可以创建一个对象,可以为它编写字段.属性及方法,它只有两个对象事件——Initialize与Terminate.首先来看一个简单的Class示例: 1 2 3

VBS基础篇 - 对象(6) - Folder对象

VBS基础篇 - 对象(6) - Folder对象 描述:提供对文件所有属性的访问,从FSO对象的GetFile方法获得 使用Folder对象 要用Folder对象模型来编程必须先用FSO对象的Getfolder方法获取文件的句柄 1.使用 CreateObject 方法来创建 FileSystemObject 对象 2.使用Getfolder方法获取文件夹的句柄 3.在创建的Folder对象上使用适当的方法 4.访问对象的属性 方法:(仅常用的方法) Folder对象的方法与File对象的方法

【JavaScript】【学习】对象的创建和继承

下午刚刚看完了<JavaScript高级程序设计>中的第六章,面向对象的程序设计,因为自己以前没有面向对象程序设计的基础,所以理解得有些困难,但是通过自己的努力研读+上网查资料+反复实践,总算是答题上理解了,对我的编程思维算是一个很大的提高吧,这里把学习笔记和心得发一下,方便以后自己查阅. 一.理解对象 在JavaScript中,一切皆是对象,前面学习引用类型,基本都是JavaScript中的内置对象,而基本类型,则都是这些内置对象的实例,BOM,DOM也是对象,全局变量可以视为window的