首页 > 编程语言 >java 类与对象

java 类与对象

时间:2022-10-22 23:00:54浏览次数:53  
标签:java 对象 value class int obj Foo public

1.在定义变量时,java要求必须显示初始化变量。

比如以下代码无法通过编译:

public class Twst{
public static void main(String[] wrgs)
{
int value;
System.out.println(value);
}
}

  

 

public class Twst{
public static void main(String[] wrgs)
{
int value=100;
System.out.println(value);
}
}

  这样写才能运行。

下面这个 也是不能运行,因为对象变量如果不引用一个真实的对象,则必须声明为null;

public class Test{
public static void main(String[] args)
{
MyClass obj     ;
System.out.println(obj.toString());
}
}

  下面这个才能运行:

public class Test{
public static void main(String[] args)
{
MyClass obj  =null   ;
System.out.println(obj.toString());
}
}

  

public class ert {
	public static void main(String[] args )
	{
		Foo obj1=new Foo();
		
	}
}
class Foo{
	int value;
	public Foo(int initvalue)
	{
		value =initvalue;
		
		
	}
	
	
	

}

  上面这些代码出什么问题?哪出错了?

因为是如果类提供了一个自定义的构造方法,将导致系统不在提供默认的构造方法。

package wer;

public class ert {
	public static void main(String[] args )
	{
		int a=0;
	Foo obj1=new Foo (a);
		
	}
}
class Foo{
	int value;
	
	public Foo(	int initvalue)
	{
		value =initvalue;
		
		
	}
	
	
	

}

  这样写就对了。

public class ert {
	public static void main(String[] args )
	{
		InitiazeBlockClass obj=new InitiazeBlockClass();
		System.out.println(obj.field);
	obj=new InitiazeBlockClass(300);
		System.out.println(obj.field);
	}
	}

class InitiazeBlockClass{
	{
	  field=200;
	}

	
	  public int field=100;
	
	public InitiazeBlockClass(	int value)
	{
		value=this.field;
	}
	public InitiazeBlockClass()
	{
		
	}
	}
	

  如果一个类中既有初始化块,又有构造方法,同时还设定了字段的初始值,谁说了算?

就像上面的代码中。

执行 类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

执行类的构造函数。

 

标签:java,对象,value,class,int,obj,Foo,public
From: https://www.cnblogs.com/nanbei666/p/16817551.html

相关文章

  • 关于Java异常处理总结
    1.运行时异常:是指编译器不要求强制处置的异常。一般是指编程时的逻辑错误,是程序员应该积极避免其出现的异常。java.lang.RuntimeException类及它的子类都是运行时异常。可......
  • 创建对象的内存分析
    在java中提倡万物皆对象的思想,所以对于创建一个对象时的内存分析显得很有必要对象的创建流程new关键字会触发java虚拟机进行堆内存的分配,并返回堆内存的地址一个对象......
  • JAVA高级编程知识总结
    该知识总结(不完整)观看于b站up主Java视频链接:https://www.bilibili.com/video/BV135411w7Bp一、常用的API1.API中基本数据类型的包装类publicstaticvoidmain(S......
  • 03Java流程控制
    1、用户交互ScannerScanners=newScanner(System.in);//通过Scanner类的next()和nextLine()方法获取输入的字符串;//在读取前我们一般需要使用hasNext()与hasNextLine(......
  • java死锁写法
    死锁产生条件:多线程,多个锁,锁嵌套(拿到资源1后还想要别人已经获取的资源2)packageThread;/**死锁产生条件:多线程,多个锁,锁嵌套*/publicclassDeadLockDemo{publi......
  • 【Java】用Java实现猜数字小游戏
    ......
  • java泛型11day
           ......
  • Java I/O(4):AIO和NIO中的Selector
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~在Java NIO的三大核心中,除了Channel和Buffer,剩下的就是Selector了。有的地方叫它选择器,也有叫多路复用器的(比如Netty)。之......
  • 小白 java运行“HelloWorld”流程
    前提:已经配置好java环境验证方法:输入win+R键,输入cmd按下回车键,接下来输入java,按下回车键,若是出现如下画面,则已经成功配置java环境。   1.在D盘中新建一个文本文档,......
  • 别再写 main 方法测试了,太 Low!这才是专业 Java 测试方法!
    在日常开发中,我们对一些代码的调用或者工具的使用会存在多种选择方式,在不确定他们性能的时候,我们首先想要做的就是去测量它。大多数时候,我们会简单的采用多次计数的方式来测......