java编程思想 -- 数据的初始化
Java  /  管理员 发布于 4年前   292
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
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号