初识Java(Java类和对象-类的构造方法) 2022-05-26 20:00 238阅读 0赞 ### 一、类的构造方法 ### 在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。 构造方法的特点 :(1)构造方法没有返回值 ;(2)构造方法的名称要与本类的名称相同。 在定义构造方法时,构造方法没有返回值,但这与普通没有返回值的方法不同,普通没有返回值的方法使用 public void methodEx() 这种形式进行定义,但构造方法并不需要使用 void 关键进行修饰。 语法 : public book (){ //....构造方法体 } public :构造方法修饰符 book :构造方法的名称 在构造方法中可以为成员变量赋值,这样当实例化一个本类的对象时,相应的成员变量也将被初始化。 如果类中没有明确定义构造方法,编译器会自动创建一个不带参数的默认构造方法。 如果在类中定义的构造方法都不是无参的构造方法,那么编译器也不会为类设置一个默认的无参构造方法,当试图调用无参构造方法实例化一个对象时,编译器会报错。所以只有在类中没有定义任何构造方法时,编译器才会在该类中自动创建一个不带参数的构造方法。 eg :this 可以调用类的成员方法和成员变量,也可以调用类的构造方法。 public class AnyThting{ public AnyThting(){ //定义无参构造方法 this("this 调用有参构造方法"); //使用 this 调用有参构造方法 System.out.println("无参构造方法"); } public AnyThting(String name){ //定义有参构造方法 System.out.println("有参构造方法"); } } 可以看到定义了两个构造方法,在无参构造方法中可以使用 this 关键字调用有参的构造方法。但使用这种方式需要注意的是只可以在无参构造方法中的第一句使用 this 调用有参构造方法。 ### 二、静态变量、常量和方法 ### 由 static 修饰的变量。常量和方法被称作静态变量、常量和方法。 有时,在处理问题时会需要两个类在同一个内存区域共享一个数据。例如,在球类中使用了 PI 这个常量,可能出了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量。这时没有必要再两个类中同时创建 PI 常量,因为这样系统会将这两个不在同一个类中定义的常量分配到不同个的内存空间。为了解决这个问题,可以将这个常量设置为静态的,PI 这个常量在内存被共享。 报废声明为 static 的变量、常量和方法被称为静态成员。静态成员属于类所有,区别于个别对象,可以在类或其他类使用类名和“ . ”运算符调用静态成员。 语法 : 类名 . 静态类成员 eg : 创建类,在类中的主方法调用静态成员并在控制台输出。 public class StaticTest{ static double PI =3.1415; //在类中定义静态常量 static int id; //在类中定义静态变量 public static void method1(){ //在类中定义静态方法 // doSomething } public void method2(){ System.out.println(StaticTest.PI); //调用静态常量 System.out.println(StaticTest.id); //调用静态变量 StaticTest.method1(); //调用静态方法 } } 设置了 3 个静态成员,分别为常量、变量和方法,然后再 method2() 方法中分别调用这 3 个静态成员,直接使用“ 类名 . 静态成员 ”形式进行调用即可。 虽然静态成员也可以使用“ 对象 . 静态成员 ”的形式进行调用,但通常不建议用这样的形式,因为这样容易混淆静态成员和非静态成员。 静态数据与静态方法的作用通常是为了提供共享数据或方法,如数学计算公式等,以 static 声明并实现,这样当需要使用时,直接使用类名调用这些静态成员即可。尽管使用这种方式调用静态成员比较方便,但静态成员同样遵循着 public 、 private 和 protected 修饰符的约束。 eg :创建类,在类中的主方法调用静态成员并在控制台输出。 public class StaticTest{ static double PI =3.1415; //在类中定义静态常量 static int id; //在类中定义静态变量 public static void method1(){ //在类中定义静态方法 // doSomething } public void method2(){ //在类中定义一个非静态方法 System.out.println(StaticTest.PI); //调用静态常量 System.out.println(StaticTest.id); //调用静态变量 StaticTest.method1(); //调用静态方法 } public static StaticTest method3(){ //在类中定义一个静态方法 method2(); //调用非静态方法 return this; //在 return 语句中使用 this 关键字 } } 在 eclipse 中输入上述代码后,编译器会报错,这是因为 method3() 方法为一个静态方法,而在其方法体中调用了非静态方法和 this 关键字。在 Java 语言中对静态方法有两点规定 : (1)在静态方法中不可以使用 this 关键字。 (2)在静态方法中不可以直接调用非静态方法。 在 Java 中规定不能将方法体内的局部变量声明为 static 的。 public class example{ public void method(){ static int i= 0; //这样输入时错误的 } } 如果在执行类时,希望先执行类的初始化动作,可以使用 static 定义一个静态区域。 public class example{ static{ //some } } 当这段代码被执行时,首先执行 static 块中的程序,并且只会执行一次。 ### 三、类的主方法 ### 主方法是类的入口点,它定义了程序从何处开始;主方法提供对程序流向的控制,Java 编译器通过主方法来执行程序。 语法 : public static void main(String[] args){ //方法体 } 主方法有以下特性 : (1)主方法是静态的,所以如要直接在主方法中太哦用其他方法,则该方法必须也是静态的。 (2)主方法没有返回值。 (3)主方法的形参为数组。其他 args\[0\]~args\[n\] 分别代表程序的第一个参数到第 n 个参数,可以使用 args.length 获取参数的个数。 eg :创建类,在主方法中编写代码,设置程序参数。 public class TestMain{ public static void main(String[] args){ //定义主方法 for(int i = 0 ; i < args.length ; i++){ //根据参数个数做循环操作 System.out.println(args[i]); //循环打印参数内容 } } } 假设给它设置 3 个参数 : 参数1 、 参数2 、 参数3 那么运行结果为: 参数1 参数2 参数3
相关 初识内部类 1、成员内部类 内部类:在一个类的内部定义一个内部类。 特点: > 1、 内部类可以使用 private 修饰,表示私有。 只能在外部类当中去使用。 > > 2、 Love The Way You Lie/ 2022年08月30日 01:43/ 0 赞/ 171 阅读
相关 初识c++的类 前言 c++所做的最重要的改进就是提供了类。类就体现了c++面向对象编程([OOP][])的特性,类是一种将抽象转换为用户定义类型的c++工具,它将数据表示和操纵数据的方法 古城微笑少年丶/ 2022年07月18日 05:28/ 0 赞/ 152 阅读
相关 初识StringBuffer类 StringBuffer类 A:StringBuffer类 线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改(用+好改变 朱雀/ 2022年06月16日 05:27/ 0 赞/ 191 阅读
相关 初识Java(Java类和对象-类) 一、类 类是封装对象的属性和行为的载体,而在 Java 语言中对象的属性以成员变量的形式存在,对象的方法以成员方法的形式存在。 1.1 成员变量 在 Java 向右看齐/ 2022年05月27日 08:58/ 0 赞/ 320 阅读
相关 初识Java(Java类和对象-面向对象概述) 一、面向对象概述 面向对象思想是人类最自然的一种思考方式,它将所有预处理的问题抽象为对象,同时了解这些对象具有相应的属性以及展示这些对象的行为,已解决这些对象面临的一些实 悠悠/ 2022年05月27日 07:28/ 0 赞/ 289 阅读
相关 初识Java(Java类和对象-类的构造方法) 一、类的构造方法 在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法。构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时 浅浅的花香味﹌/ 2022年05月26日 20:00/ 0 赞/ 239 阅读
相关 初识Java(Java类和对象-对象的引用) 一、对象的引用 在 Java 语言中尽管一切都可以看做对象,但真正的操作标识符实质上是一个引用,那么引用在 Java 中是如何体现的呢? 语法 :类名 对象引用名 朱雀/ 2022年05月26日 02:43/ 0 赞/ 287 阅读
相关 初识Java(Java类和对象-对象) 一、对象 Java 是一门面向对象的程序设计语言,对象时由类抽象出来的,所有的问题都通过对象来处理,对象可以操作类的属性和方法解决相应的问题,所以了解对象的产生、操作和消 亦凉/ 2022年05月25日 23:48/ 0 赞/ 366 阅读
相关 C++类与对象初识 引入:在我们编程语言中,想必大家都应该听说过面向过程编程与面向对象编程,那么到底什么是面向过程编程什么是面向对象编程呢?对于这个问题我想大家都应该听我们的老师讲过一个生动而又形 青旅半醒/ 2022年02月03日 04:13/ 0 赞/ 489 阅读
相关 初识类和对象 python中一切皆为对象,类型的本质就是类。 类的相关知识 def functionName(args): '函文档字符串' ''' class类名 灰太狼/ 2021年12月24日 10:19/ 0 赞/ 315 阅读
还没有评论,来说两句吧...