java 类 中的构造器基本运用

1.基本概念:

  构造器是类中的一个特殊方法,该方法在对象实例化时被调用。构造器的用途适当对象实例化时初始化对象的成员变量。当我们要为一个类添加构造器时南无构造器名称就必须和类的名称一致,并且不能声明返回值。

  如我们给一个叫Student的类添加构造器:

 

 1 /**
 2    *Student类
 3   */
 4
 5 public class Student{
 6     public String studentName;   //学生姓名
 7     public int studentAge;           //学生年龄
 8     public String studentSex;      //学生性别
 9     public Student(){
10         system.out.println("在一个无参构造器内。");
11         studentName = "匿名";
12         studentAge = "20";
13         studentSex = "男";
14     }
15     public Student(String studentName,int studentAge,String     studentSex){
16         system.out.println("在有三大参数的参构造器内。");
17         studentName = studentName;
18         studentAge = studentAge;
19         studentSex = studentSex;
20     }
21    //类余下定义部分
22 }

  当为构造器添加多个构造器时,应用了方法的重载的规则,每个构造器必须有唯一的形式参数列表(上面代码中红字部分就是构造器的形式参数列表),一与其他构造器相区别。

2.构造器的作用:

  对象使用new关键字实例化时,jvm(java虚拟机)对对象分配内存,并初始化。因此,对象的成员变量值被设置为初始值。如果没有构造器,我们就得初始化所有成员变量,以确保对象的数据是有意义的。在对象实例化是,构造器给我们提供了构造对象的几会,以确保对象的成员变量都是有意义的数据。

3.构造器与方法的区别:

  ①.构造器的名称必须与类名相同(大小写也必须一致)。

  ②.构造器不能声明返回值,也不能返回void。

4.默认构造器:

  如果我们编写一个类,但在这类中并没有编写构造器。这构造器用public访问修饰符限定,没有形式参数,且不会做任何事情。默认构造器仍然遵循构造器的规则。

  如果我们为类编写了一个或多个构造器那么系统就不会在生成默认构造器生成了。

5.构造器的调用方法:

  当对象使用关键字 new 实例化对象时,构造器就被调用了。一个可以有多个构造器,这种情况下,要调用那个歌构造器就取决于 new 运算符所用的实际参数。

  当一个类只有一个构造器时,那么就只有一种方法来初始化该类对象。如果一个类有多个个构造器时,那么对于类中的美个构造器都可以使用 new 运算符。

Student stu = new Student();

  上述代码中紫色的就是构造器的调用。可以调用构造器的唯一时机是对象呗实例化是时。

时间: 2024-11-08 19:29:31

java 类 中的构造器基本运用的相关文章

java类中各成员初始化的顺序

了解java中类各个成员的初始化顺序是非常重要的,这样你可以对类有全局的认识.不说太多,直接看下面的例子 class Father { static{ System. out.println("父类静态代码块初始化" ); } { System. out.println("父类代码块初始化" ); } private static String s=print(); public static String print() { System. out.println

java类中调用servlet

一.Java中调用servlet说明: 我们有时可能需要在Java类中调用Servlet从而实现某些特殊的功能,在JavaAPI中提供了一个URL的类,其中openStream( )方法可以打开URL的连接,并返回一个用于该连接读入的InputStream. 二.Java中调用servlet应用举例: package com.solid.test; import java.io.BufferedReader; import java.io.IOException; import java.io.

java类中属性的加载顺序,以及内存分配情况介绍

看下面例子及说明: /** 假如有外部类调用了该类,代码为:new StaticTest(); 那么下面是类属性的加载顺序 */ public class StaticTest{ public int dsd=2;//第3 //多个对象会有多次分配内存 public awds() { int sdsfsd=2;//第4 //多个对象会有多次分配内存 } //静态代码块 static{ System.out.println("静态代码块正在加载...");//第1 } public st

Java 类中成员初始化顺序

Java 中的类成员 基本分为 静态成员, 实例变量  方法中特别的是静态方法和构造方法. 1.定义一个类 public class ClassLoaderTest { public int a ; public String b; private static int c; public  ClassLoaderTest(){ System.out.println("执行前:"+ a + "  "+ b); a = 10; b = "lisi"

java web项目,java类中获得WEB-INF路径

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 private static String getWebInfPath() {         URL url = 当前类.class.getProtectionDomain().getCodeSource().getLocation();         String path = url.toString();         int index = pat

java类中定义接口

今天看到一个java类中定义了接口,写个备忘录,记录一下 1 package com.gxf.test; 2 3 public class Test_interface { 4 public interface show{ 5 public void show(); 6 } 7 static class TestInterface implements show{ 8 9 @Override 10 public void show() { 11 System.out.println("this

java类中获取ServletContext的方法

起因是我想要获取一个相对路径,需要用到servletContext的getRealPath()方法,于是上网搜索,找到两种方法来获取ServletContext. 第一种方法是这样的: ServletActionContext.getServletContext(): 后来发现这种方法只有在从浏览器打开的时候才能获取到ServletContext,否则在普通的java类中会报空指针错误(找不到ServletContext),猜测可能是因为ServletActionContext是struts2封

如何在java类中获取javaWeb的根路径

我们有时候需要在java类中(包括util类等)获取web的根路径,可以通过class类路径来获取: public static String getRealPath(Class clazz) { String url = clazz.getResource("").getPath(); int displace = url.indexOf("WEB-INF"); StringBuffer buffer = new StringBuffer(); for (int

java类中与js中split分割字符串转数组区别

java类中,以","分割,将字符串转化为数组 String str = "a,b,c,"; String[] arr = str.split(","); System.out.println(arr.length); 输出长度为3,arr[0]="a"; arr[1]="b"; arr[2]="c"; js中,以","分割,将字符串转化为数组 var str = &