Java 类的一些基本语法
来源:互联网 发布:风控模型算法 编辑:程序博客网 时间:2024/05/21 05:56
本文主要通过对比C++来说明Java类的特性
类和对象的概念在C++已经接触不少,在Java中,类的组织方式与C++有一些区别。
对象的声明与定义之前以及讨论过,这与C++有很大的不同,接下来继续介绍更多的特性
Java类::
类内成员种类:实例域、静态域、方法、静态方法、main方法、工厂方法。
实例域:类比C++类内数据成员,需要说明的几点是:
(1) 实例变量具有默认值,受其类型所影响,数值型为0,布尔型为false,引用为null
(2) 每个实例变量前需要使用访问说明符来限定其访问权限,若不加则默认为包可见,这大大破坏了类的封装性。
静态域:类比C++类内静态数据成员。
静态方法:类比C++类内静态函数
需要注意的是:对于静态域、静态方法的访问访问方法与C++有所不同,不用::,而直接使用类访问,和C++相似,java也之处通过对象访问。
方法:类比C++成员函数,同样需要访问说明符,若不增加则为包可见。这里需要注意方法参数:Java中方法参数传递的方式默认为值传递(call by value),因此考虑之前数据的储存方式,可以理解方法能够对被传递的变量造成哪些影响。(可以用几个简单swap方法做实验),此外java方法也可以被重载,重载类比C++函数重载。
main方法:理论上,java每个类都可以有一个main方法用于测试main()方法的声明必须为:public static voidmain(String args[])。
为什么要这么定义,和JVM的运行有关系。
当一个类中有main()方法,执行命令“java类名”则会启动虚拟机执行该类中的main方法。
由于JVM在运行这个Java应用程序的时候,首先会调用main方法,调用时不实例化这个类的对象,而是通过类名直接调用因此需要是限制为publicstatic。
对于java中的main方法,jvm有限制,不能有返回值,因此返回值类型为void。
main方法中还有一个输入参数,类型为String[],这个也是java的规范,main()方法中必须有一个入参,类细必须String[],至于字符串数组的名字,这个是可以自己设定的,根据习惯,这个字符串数组的名字一般和sun java规范范例中mian参数名保持一致,取名为args。
因此,main()方法定义必须是:“publicstatic void main(String 字符串数组参数名[])”。
再谈一谈对象构造:
Java中对象构造经历一下几个过程:
(1) 所有数据域被默认初始化为默认值。
(2) 按照在类中声明的次序,依次执行所有域的初始化语句和初始化块。
(3) 如果构造函数第一行调用了类内其他构造器,则执行第二个构造器主体(this()、super()实现)
(4) 执行本构造器主体。
一些小细节:java中的构造器和C++中构造函数相似基本可以类比,java没有初始化列表,java构造器调用其他构造器的特性可类比C++11中的委托构造函数。
对象析构:
由于java有自动的垃圾回收器,因此java不支持析构函数。如果java程序使用了其他资源需要主动释放,可以添加finalize方法,此处不深究。
本人不才,如有问题,欢迎指出。
- Java 类的一些基本语法
- Java 一些基本语法的总结
- java编程遇到的一些基本语法总结
- sqlserver 一些基本的语法
- MySQL的一些基本语法
- c的一些基本语法
- Markdown的一些基本语法
- oracle的一些基本语法
- Java的基本语法
- Java的基本语法
- java的基本语法
- java的基本语法
- Java的基本语法
- java的基本语法
- java的基本语法
- java中数组中的一些基本语法
- MySQL的一些基本语法(2)
- oracle操作的一些基本语法
- 单片机串口通信紊乱
- SpringBoot 错误总结
- 数据结构复习笔记01_排序算法_交换排序
- 提升服务器应对高并发之路
- bzoj4034: [HAOI2015]树上操作
- Java 类的一些基本语法
- Nvidia gpu物理结构与编程模型简介
- Java泛型了解
- 多线程简单实例
- 【PAT】【Advanced Level】1005. Spell It Right (20)
- bzoj 2565: 最长双回文串
- Spring-Data-JPA 错误总结
- Eclipse 与 mysql 链接与 JDBC 测试
- linux下破解jetbrains idea