当前位置:首页 > 开发 > 编程语言 > Java > 正文

java编程思想 -- 数据的初始化

发表于: 2015-03-07   作者:百合不是茶   来源:转载   浏览:
摘要:   1.使用构造器确保数据初始化      /* *在ReckInitDemo类中创建Reck的对象 */ public class ReckInitDemo { public static void main(String[] args) { //创建Reck对象 new Reck(); } }

 

1.使用构造器确保数据初始化

    

/*
 *在ReckInitDemo类中创建Reck的对象 
 */
public class ReckInitDemo {
	

	public static void main(String[] args) {
		//创建Reck对象
		new Reck();
	}
	
	
}

//内部类
class Reck {
	// 初始化数据
	public Reck() {
		// 确保对象在被创建时有数据
		System.out.println("数据被初始化");
	}
}

 运行结果:    数据被初始化 

 

 

 

当执行new Reck();时,将会为对象分配存储空间,并调用相应的构造器,保证了操作的对象是已经被初始化了的

 

 

2,方法的重载;

 

 

package com.wj.init;
/**
 * 
 * @author Administrator
 *调用重载的类
 */
public class OverrideDemo {

	public static void main(String[] args) {
		
		new OverrideInit();//调用无参构造方法
		new OverrideInit(5);//调用int类型的构造方法
		
	}
}


//内部类
class OverrideInit {
	// 构造方法:
	// 1,访问控制必须是public
	// 2,构造方法的名称和类的名称完全一样
	// 3,不能有相同的两个构造方法参数和名称是完全一样的
	int i;

	// 无参构造方法
	public OverrideInit() {
		System.out.println("被调用了");
	}

	// int类的构造方法
	public OverrideInit(int i) {
		i++;
		System.out.println(i);
	}
}

 运行结果:

 

     被调用了

     6  

 

当 new OverrideInit();对象是可以不传参数也可以传参数,,这就是方法的重载

 

 

3,默认构造器的简单使用;

     在2中我们已经使用了 new OverrideInit();,这就是一个简单的默认构造器

package com.wj.init;

/**
 * 
 * @author Administrator 默认构造器的使用 系统类 的默认构造器; 自定义类默认器的使用
 */
public class DefaultDemo {
	// 系统会默认添加DefaultDemo的构造方法,它的作用是创建一个默认
	// 的对象,如果我们创建的类中额米有构造器,系统会默认的帮我们创建一个默认的构造器
	// public DefaultDemo() {
	// }

	public static void main(String[] args) {
		// 创建
		new DefaultDemo();
		// new
		// DefaultDemo();创建了一个对象,
		//并调用其默认的构造方法-如果我们没有定义这个构造器,
		//没有这个构造器我们就不能创建对象,也就不能去调用方法,
		//但是如果定义了一个(无论是否有参数),编译器都不会自动创建默认的构造器
		System.out.println("成功创建了");
	}
}

 

自定义构造器:

public class DefaultDemo {
//自定义一个有参数构造器,系统不会再创建默认的构造器
	public DefaultDemo(int i) {
	 }
	

	public static void main(String[] args) {
		// 创建
		new DefaultDemo();
		// new
		// DefaultDemo();创建了一个对象,
		//并调用其默认的构造方法-如果我们没有定义这个构造器,
		//没有这个构造器我们就不能创建对象,也就不能去调用方法,
		//但是如果定义了一个(无论是否有参数),编译器都会自动创建默认的构造器
		System.out.println("成功创建了");
	}
}

无法编译:构造器无法匹配

 

 

4,this关键字

    this区别当前的对象

   

/*
 * this的简单使用
 */
public class ThisDemo {
  private static int i;
  //使用this区分当前i的区别  android和oracle都有相关的使用
	public ThisDemo(int i){
		this.i=i;
	}
	public static void main(String[] args) {
		new ThisDemo(8);
		System.out.println(i);
	}
}

 

5,静态代码块初始化,静态数据初始化,

/**
 * 
 * @author Administrator Static代码块的初始化,Static数据初始化
 */
public class StaticDemo {
	// 静态属性,静态代码块,代码块的执行顺序
	// 静态属性-->静态代码块-->代码块
	static int i = 0;

	static {
		// 静态代码块,适合数据的初始化
		System.out.println("A" + i);
		i = 10;
	}

	{
		// 初始化非静态实例
		System.out.println("B" + i);
		i = 5;
		Mug mug = new Mug(i);

	}

	public static void main(String[] args) {
		StaticDemo demo = new StaticDemo();
		demo.f();
	}

	// 打印i的方法
	public void f() {
		System.out.println(i);
	}

}

// 内部类
class Mug {
	private int i;

	public Mug(int i) {
		this.i = i;
	}
}

 

6,可变数组参数

package com.wj.init;

/**
 * 
 * @author Administrator 可变参数列表
 */
public class VarArrayList {
   //创建可变数组
	static void point(Object... s) {
		for (Object i : s) {
      System.out.println(i);
		}
	}

	public static void main(String[] args) {
		//类名.可变数组
		VarArrayList.point("java");//
		VarArrayList.point(1);
		
		int[] a={1,2,3,4};
		VarArrayList.point(a);
	}
}

 运行结果:

java

1

 

[I@64ea66

 

可变数组可以传入任意类型的,也可以是空的,主要是利用了java中的一切类都是继承的Object

 

java编程思想 -- 数据的初始化

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
今天本来以为进度可以快点,但是没想到这么慢,只是今天的知识点比较多。 41-47 多态: 极大的改善我
2012-03-22 54-60/913 第二章 一切都是对象 Java基于C++,但是java是一种更“纯粹”的面向对象程序设
前面的几篇笔记都写得太古板了,今天就换个新的写作风格来试试,暂且叫“案例导向式”吧,希望能对
package com.facaizhu.concurrency; //实现 Runnable,只表示具有一个 run 方法,但它并没有线程能力,
以下内容摘自《java编程思想》第三版: 程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎么
容器类库图 List(interface) 次序是List最重要的特点;它保证维护元素特定的顺序。List为Collection
以下内容摘自《java编程思想》第三版: 程序运行时,对象是怎么进行放置安排的呢?特别是内存是怎么
第一章:对象入门 1.1 、面向对象编程(OOP)的吸引力: (1)对管理人员,它实现了更快和更廉价的
前言 Java是基于C++的,但Java是一种更加纯粹的面向对象程序设计语言。 C++和Java都是混合/杂合型
北门煎饼东门串儿:  《JAVA编程思想(Think in Java)》一书中提供了大量源代码,可是项目是用ant构
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号