java方法四要素_Java基础语法
Free Talk
最近在JavaGuide博客里面兜兜转转了几天,一边等华为的实训消息,一边随便看点Java后端开发的知识。但是这一周总感觉看了就忘,而且光看也很容易走神发呆,要不然就是去打王者啥的。决定还要按照直接写的Java后端学习路线一点点走下去,一篇篇写博客敦促自己,上个月的时候写了一些JVM相关的文章,现在把之前鸽的Java语言基础先补上。
这边Java基础语言主要参照菜鸟教程和JavaGuide完成的,计划在今明两天完成Java语言基础系列博客。
基础知识
四要素
任何一个Java程序都可以认为是一系列对象的集合,而对象之间通过彼此调用方法来协调工作。 - 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 - 类:类是一个模板,它描述一类对象的行为和状态 - 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。 - 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。
基础语法大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。 我自己方法名这块之前好像总是大写,记下了
源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
主方法入口:所有的 Java 程序由 public static void main(String[] args)*方法开始执行。 {% note success no-icon %} 在Java小程序中,applet小程序没有main()方法,是调用init()或者run()方法来启动。 {% endnote %}
Java标识符类名、变量名以及方法名都被称为标识符。
所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
关键字不能用作标识符
标识符是大小写敏感的
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary
进阶知识
Java修饰符
Java可以使用修饰符来修饰类中方法和属性。 + 访问控制修饰符 :default, public , protected, private
+ 非访问控制修饰符 : final, abstract, static, synchronized
Final修饰符
Final修饰符可以用来修饰类、方法和变量。 1. 类:final修饰的类不能被继承,final类中的所有成员方法都会被隐式的指定为final方法; 2. 方法:final修饰的方法不能被重写; 3. 变量:final修饰的变量是常量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能让其指向另一个对象。
{% note info no-icon %} 使用final方法的原因有两个。第一个原因是把方法锁定,以防任何继承类修改它的含义;第二个原因是效率。在早期的Java实现版本中,会将final方法转为内嵌调用。但是如果方法过于庞大,可能看不到内嵌调用带来的任何性能提升(现在的Java版本已经不需要使用final方法进行这些优化了)。类中所有的private方法都隐式地指定为final。 {% endnote %}
Abstract修饰符抽象类:
抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。
抽象类可以包含抽象方法和非抽象方法。
抽象方法:
抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成final和strict。
任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
Static修饰符修饰成员变量和成员方法: 被 static 修饰的成员方法属于类,不属于单个这个类的某个对象,被类中所有对象共享,可以并且建议通过类名调用。 被static 声明的成员变量属于静态成员变量,静态变量 存放在 Java 内存区域的方法区。 调用格式:类名.静态变量名 类名.静态方法名()
静态代码块: 静态代码块定义在类中方法外, 静态代码块在非静态代码块之前执行(静态代码块—>非静态代码块—>构造方法)。 该类不管创建多少对象,静态代码块只执行一次.
静态内部类(static修饰类的话只能修饰内部类): 静态内部类与非静态内部类之间存在一个最大的区别: 非静态内部类在编译完成之后会隐含地保存着一个引用,该引用是指向创建它的外围类,但是静态内部类却没有。没有这个引用就意味着:1. 它的创建是不需要依赖外围类的创建。2. 它不能使用任何外围类的非static成员变量和方法。
静态导包(用来导入类中的静态资源,1.5之后的新特性): 格式为:import static这两个关键字连用可以指定导入某个类中的指定静态资源,并且不需要使用类名调用类中静态成员,可以直接使用类中静态成员变量和成员方法。
Synchronized修饰符
Synchronized关键字声明的方法同一时间只能被一个线程访问。Synchronized修饰符可以应用于四个访问修饰符。
Java变量类变量:独立于方法之外的变量,用 static 修饰。
实例变量:独立于方法之外的变量,不过没有 static 修饰。
局部变量:类的方法中的变量。
public class Variable{
static int allClicks=0; // 类变量 String str="hello world"; // 实例变量 public void method(){
int i =0; // 局部变量 }
}
java方法四要素_Java基础语法相关推荐
- Java是有法_Java基础语法
Java的基础语法包含三大类:标识符.修饰符.关键字. 一.标识符. 定义:标识符是以数字.字母.下划.$符号(美元符)所组成的用来标志类名.对象名.方法名.类型名.数组名.包名的有效字符序列.(简单 ...
- java方法的传递方式_JAVA基础--方法传参
JAVA基础--方法传参 为啥拿这个当话题? 在初学者阶段,许多童鞋都对方法传参比较迷茫,知其然不知其所以然. 一.先说说参数传递的几个术语: 值调用(call by vale):表示方法接收的是调用 ...
- java 数组下标 变量_Java基础语法:数组
一.简介 描述: 数组是相同类型数据的有序集合. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 基本特点: 数组的长度是确定的.数组一旦被创建,它的大小就是不可以改变的. ...
- java default修饰符_Java基础语法二
Java循环结构 for循环 /* for(初始化;布尔表达式;更新) {执行代码 } */ for(int i=0; i < 5; i++) {System.out.println(i); } ...
- java 方法 参数 引用_Java 基础
本质上,只有值传递这一种传递方式,所谓的引用传递是值传递的一种.即:1 2 3 4 5 6// 将2这个值复制一份传递给m int a = 2; m(a); // 将引用o复制一份并将其值传递给m m ...
- java大括号定义数组_Java基础语法_数组
数组的概念 数组的概念:是一种容器,可以同时存放多个数据值 数组的特点: 1.数组是一种引用数据类型 2.数组当中的多个数据,类型必须统一 3.数组的长幅在程序运行期间不可改变 数组的定义格式 数组的 ...
- Java方法详解(基础)
Java方法详解(基础) 什么是方法? System.out.println():调用系统类标准输出对象方法out. 方法是语句的集合,他们在一起执行一个功能. 方法是解决一类问题的步骤的有序组合. ...
- Java入参关键字_Java基础17-成员变量、return关键字和多参方法
1.成员变量 在类中声明的变量为成员变量 //Dog类 class Dog{ String name;//成员变量 } public class Test1{ public static void m ...
- JAVA运算的类型兼容原则_Java基础语法回顾(一)
Java基础语法 Java规范 image.png Java字节码 java程序是以".java"为扩展名,当我们编写完java程序后,要执行程序需要经过两个阶段:编译和运行. 编 ...
最新文章
- Linux之父为过去的言行道歉,宣布离开社区反思
- Nginx全局块的其他配置指令
- 前端学习(2326):angular之用户输入数据
- 13篇顶会!25岁成985高校博导,入职半年发ICML,网友:万点暴击
- 回飞锅有哪些功能_回飞锅的精髓,只由原创者荷兰BK掌控
- c语言基础符号,C语言符号大全。陆续更新基础知识给新人提供。(申精)
- 第 72 章 FAQ
- 计算机的任务管理器作用,电脑技术:如何妙用任务管理器
- 图标字体化浅谈[转]
- [算法]圆圈中最后剩下的数
- SpringBoot自动解压Gzip请求
- 曲面上的测地线 MATLAB,§6曲面上的测地线.PDF
- web之qq邮箱登录界面
- linux学习之使用piranha配置高可用集群
- 史上最强的超级爆笑锦集
- 解析LDO的五大作用,这里有你意想不到的答案
- 全国英语计算机等级考试报名费,通知 | 全国大学生英语竞赛计算机等级考试报名...
- Vue后台管理系统项目——实现登录功能
- 学linux作用,linux有必要学吗?学linux有什么作用,学linux能干什么
- vb中自动调整控件的大小