初始化与方法
·方法(函数),可以称之为是一个类中的最小单位。下面以一个例子说明怎样定义方法:
下面是一个特殊的函数:构造函数(constructor),构造函数是没有返回类型的。
public class MethodTest {
int a;
int b;
//这是默认的构造函数,如果在一个类中没有写构造函数
//则系统会自动给其默认一个构造函数
public MethodTest() {
}
//带参数的构造函数
public MethodTest(int a,int b) {
//this指的就是MethodTest这个类
//也可以算是一个类的引用
this.a = a;
this.b = b;
System.out.println("赋值完成.a:"+a+",b:"+b);
}
public static void main(String[] args) {
MethodTest mt = new MethodTest();
MethodTest mt1 = new MethodTest(5,6);
}
}
|
以上两个MethodTest()构造函数也叫做方法的重载
public void fun() {
}
public void fun(int a) {
}
public void fun(String str) {
}
|
这里这三个方法返回值类型以及方法名都是一样的,只有参数列表不一样,这样的一系列方法就叫做:方法的重载
但下面这两方法就不是方法的重载,而是不允许出现的
public void fun(int a) {
}
public void fun(int b) {
}
|
因为这只是参数中的变量名不一样,如果参数的类型不一样就可以了,就像上面例子的后面两方法一样。
·this关键字
下面再以一个例子来说明一下this关键字:
public class ThisTest {
int num;
/**
* 带参数的构造函数
* @param num 在构造的时候要传入的一个int类型的值
*/
public ThisTest(int num) {
this.num = num;
}
/**
* 自定义的一个函数
* 调用一次就让该类里的num加1
* @return 返回自己,也就是这个类本身
*/
public ThisTest getThis() {
num++;
return this;
}
/**
* 自定义的一个函数
* 输出num的值
*/
public void print() {
System.out.println("num:"+num);
}
public static void main(String[] args) {
//构造该类的时候给num赋值为2
//因为getThis()这个方法的返回值是ThisTest这个类,所以可以多次这样点调用
//调用三次getThis()之后num的值加到了5
new ThisTest(2).getThis().getThis().getThis().print();
//~在这里将会输出num:5
}
}
|
·static关键字
Static(静态)方法内是没有this关键字的。在static方法内不能调用非静态方法,但非静态方法内是可以调用static(静态)方法的。Static(静态)出现的主要目的则是可以通过类名来直接调用static的方法。下面以一个例子来说明一下此关键字
public class StaticTest {
/**
* 这是一个static(静态)的方法,可以通过类名直接调用
* 求1到target的和
* @param target 目标数,如果target等于10,那就是求1到10之间的和
* @return 返回和
*/
public static int result(int target) {
int result = 0;
for(int i=1;i<=target;i++) {
result = result+i;
}
return result;
}
public static void main(String[] args) {
//这里也可不用类名,写成:System.out.println("结果是:"+result(100));
System.out.println("结果是:"+StaticTest.result(100));
}
}
|
·初始化
class Cup {
Cup(int marker) {
System.out.println("Cup("+marker+")");
}
void fun(int marker) {
System.out.println("fun("+marker+")");
}
}
class Cups {
Cups() {
System.out.println("Cups()");
}
没显示完,请下载附件查看完事版!
|
分享到:
相关推荐
Java 数组初始化详解 Java 数组初始化是 Java 编程语言中的一种基本概念,它允许开发者创建和初始化数组,以便于存储和操作数据。在本文中,我们将对 Java 数组初始化进行详细的介绍,包括一维数组和二维数组的声明...
本文将详细介绍6种初始化Java List集合的方法,并通过代码示例帮助理解每种方法的使用和特点。 1. 常规方式 这是最常见的初始化List的方式,通过创建ArrayList实例并逐个添加元素。自JDK 7以后,可以省略泛型类型的...
`init`文件可能包含了各种构造函数的实现,展示它们如何被调用以及与初始化块交互的方式。 5. **成员变量初始化**: Java允许我们在变量声明时进行初始化。这种初始化发生在构造函数之前,因此在实例初始化块之前...
在Java编程语言中,初始化块是程序执行时用于初始化对象或类的重要机制。这里我们将深入探讨两种类型的初始化块:静态初始化块(Static Initializer Block)和对象初始化块(Instance Initializer Block)。这两种...
总结起来,Java初始化块是Java中用于对象和类初始化的重要工具,它们在不同场景下提供了一种灵活的方式来控制对象和类的状态。理解初始化块的工作原理对于编写高效且无错误的Java代码至关重要。在编写代码时,应谨慎...
6. **类初始化与类加载器**: - 类的初始化是由对应的类加载器触发的,当且仅当以下条件之一满足时: - 遇到new关键字实例化对象; - 遇到静态字段(非final)并对其进行访问; - 遇到静态方法的调用; - 使用...
动态初始化是指数组定义与为数组分配空间和赋值的操作分开进行。例如,`int a[]; a = new int[3];`创建了一个名为`a`的整型数组,数组长度为3。然后,可以逐个赋值,例如`a[0] = 0; a[1] = 1; a[2] = 2;`。 静态...
java编程思想-初始化与清理了解this之后,你就能更全面地理解“静态(static)方法”的含义。静态方法就是没有this的方法。在“静态方法”的内部不能调用“非静态方法”,反过来倒是可以的。而且你可以在没有创建...
当我们谈论“Java类继承初始化顺序”时,涉及到的关键知识点包括构造器、成员变量的初始化、super关键字以及方法的覆盖。 首先,了解类初始化的顺序至关重要。当创建一个子类实例时,初始化过程遵循以下步骤: 1. ...
3. **静态成员变量与实例成员变量的初始化顺序** ```java public class TestOrder { // 静态成员变量初始化 public static TestA a = new TestA(); // 静态初始化块 static { System.out.println("静态初始...
在面试中,面试官可能会通过这种类型的题目来评估应聘者对Java内存模型的理解,以及他们在编写代码时是否能考虑到这些初始化规则,从而避免潜在的陷阱。因此,掌握类的初始化顺序是每个Java开发者必备的知识点。
Java初始化和清理是Java语言中非常重要的两个过程,它们确保了Java程序的正确运行和资源的有效管理。Java的初始化包括类的加载、连接和初始化三个过程,而清理则主要指垃圾回收机制。 首先,Java初始化的主要特性...
Java 变量初始化详解 Java 变量初始化是 Java 语言的基础知识点之一,但也往往被学习者所忽略。 Java 变量初始化的时机是指在 Java 语言中变量的初始化过程,包括变量的声明、初始化和赋值的步骤。 Java 变量声明 ...
Java的初始化与清理是编程过程中至关重要的环节,它关乎到程序的正确运行和资源的有效管理。本文将深入探讨Java中的初始化过程,包括对象的构造器初始化以及类成员的初始化顺序,同时也会涉及Java的垃圾回收机制,即...
即使变量定义散布于方法定义之间,它们仍旧会在任何方法(包括构造器)被调用之前得到初始化。 类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而...
45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip45.java数组动态初始化.zip...
`@PostConstruct`是Java EE规范的一部分,它用于标记一个方法,这个方法将在对象被Spring容器初始化完成后、所有依赖注入完成并且在该对象的`init()`方法之前调用。使用`@PostConstruct`注解的方法只会被调用一次,...