java是一门面向对象的语言,在编程过程中当然离不开对象的声明,而对象又是通过类定义的,所以java中最重要的就是各式各样的类,在java中,类也是一个程序的基本单位

0x01:默认生成类

在eclipse中创建好一个java类之后会自动生成一个默认类,如下:

public classtest {

}

这是一个空白类,其中class关键字表示定义的是一个类,public是一个修饰符,表示这个类是公开的,test是类名,是根据所创建的java文件自动生成的。

0x02:定义main方法

java程序的运行和c有点相同,都是从一个main方法中运行,在main方法中,可以调用其它自定义的方法。

public classtest {public static voidmain(String []args){

}

}

方法定义了一组执行语句,方法内部的代码将会被依次顺序执行。

这里的方法名是main,返回值是void,表示没有任何返回值(这一点和c也是类似的,方法的返回类型必须与定义的一致。。)。

我们注意到public除了可以修饰class外,也可以修饰方法。而关键字static是另一个修饰符,它表示静态方法,Java入口程序规定的方法必须是静态方法,方法名必须为main,括号内的参数必须是String数组。

0x03:方法的调用

我们当然不能把所有的代码都写在一个main方法中,这样会让代码过于臃肿,且可读性差。可以把实现某种功能(比如获取绝对值、求平方等)的一些代码自定义为一个方法,然后在main方法中调用这个自定义的方法。

public classtest {public static voidmain(String []args){

hello();

}static voidhello(){

System.out.println("hello,");

world();

}static voidworld(){

System.out.print("world!");

}

}

方法的调用与c是一样的,直接使用方法名就行,有参数的话需要传入对应类型的参数。但不同的方法的定义与c中有点不一样,因为java中main方法是static类型,在自定义方法时也要在前面加航static,要不会报错:

Cannot make a static reference to the non-static method hello() from the type test

0x04:类的调用

在复杂一点的代码中,只自定义方法也还是不够的,还需要自定义类。 类的使用和方法略有不同,必须通过类的实例调用类里面的方法。

public classtest {

// 声明一个Dog类的实例

Dog dog= newDog();public static voidmain(String []args){

// 调用Dog的方法

Dog.run();

Dog.eat();

}

}

// 自定义Dog类classDog{static voidrun(){

System.out.println("dog is running!!");

}static voideat(){

System.out.println("dog is eating!!");

}

}

关于为什么java的静态方法中 可以调用的方法、可以使用的成员变量必须时静态的,网上查了一下,有这样一段话,“由于静态方法可以不通过对象进行调用,因此在静态方法里,不能调用其他非静态变量,也不可以访问非静态变量成员。”

作者:知乎用户

链接:https://www.zhihu.com/question/20834765/answer/16364708

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

静态方法实际是类的方法,而不是关于对象的方法。所以不是“可以不通过对象调用方法”,而是恰恰应该使用类来调用,而且鼓励这种写法,而不是通过对象调用。即:静态方法不和对象相关,而是仅仅和类相关。

为啥呢?解释是这样的:在一般的类中定义的方法中,非静态类其实不仅仅有他们后面括号里面的显式参数(比如 public int getField(String param1, int param2)这个方法,显式参数是param1和param2),还包括一个隐式参数:即这个调用方法的对象(即this)。而静态方法,则没有这个隐式的参数,仅仅就只有括号中的显式参数。

既然是因为静态方法不和对象关联,那么它就只能用同样仅仅和类关联而不和对象关联的实例域,毕竟不是静态的实例域在不同对象中基本上都是不同的嘛。

而理解这个道理,最最关键的一点是:

java中的“static”和C++中的“static”含义并不完全一样!!!C++中的关键字static被复写了三次,有三种含义,分别为:

变量一直存在;

不能被其他文件访问的全局变量和函数;

属于类且不属于对象的全局变量和函数。在一大部分人心中可能只把它理解为“静态”的意思,实际上Java仅仅取了C++中static的最后一个含义:即,不与类的实例相关联,仅与类相关联。

(ps:刚刚起步的小白,若理解有误,还请大佬们多多指正。。。。。。)

***************不积跬步无以至千里***************

java程序结构_java程序结构相关推荐

  1. java程序结构_java程序的三种结构

    从结构化程序设计角度出发,程序有三种结构: 顺序结构: JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序 ...

  2. java程序流程_java程序流程控制

    一丶顺序结构 顺序结构是程序最基本的流程控制,没有特定的语法结构,按照自上而下依次执行. 二丶选择结构(分支结构) 1丶if-else语句 if(条件表达式){                     ...

  3. java的程序概念_Java程序基本概念

    大家好,在这里跟大家讲解一下关于Java程序的基本概念应用. 以下本人的介绍包括有以下的几点: 一.标识符的定义 二.数据类型的划分 三.运算符的应用 四.分支结构.循环结构.循环控制语法的应用 五. ...

  4. java程序组成_java程序是由什么组成的

    展开全部 1.源程序文32313133353236313431303231363533e78988e69d8331333363373732件的构成 要编写Java程序,首先应该知道Java程序文件中必 ...

  5. java整除输出_Java程序输出可被其他数字整除的数字

    我有一个程序,该程序读取两个实数,然后打印出这两个之间的所有数字,这些数字可以被2或3或5整除.该程序可以正常工作,但是当用户输入两个非常大的数字时(例如1122222123333)和21412332 ...

  6. java程序结构_Java 程序结构说明(学习 Java 编程语言 004)

    1. 一个简单的类 创建 FirstSample.java 文件,来编写最简单的 Java 应用程序.下面是示例代码: public class FirstSample { public static ...

  7. java表格树_Java程序员值得拥有的TreeMap指南

    吃饭间隙,迷上了<吐槽大会>,一集一集地刷啊,觉得这些嘉宾真的挺有勇气的,敢于直面自己的惨淡槽点.于是,同学们看到了,我作为一个技术博主,也受到了"传染",不,受到了& ...

  8. java 招聘要求_Java程序员如何进阶,一般招聘都有哪些要求?

    作为当前市场上应用领域最广.人才需求最大的编程语言,Java一直是人们入行IT行业的选择.然而,随着大批量的人涌入Java开发行业,企业的招聘门槛也在无形中抬高,提升专业技能成为新手Java程序员实现 ...

  9. java ide排名_Java程序员的困惑,Java IDE到底怎么选

    Eclipse和IntelliJ IDEA可以说是程序员们最常用的两个IDE开发工具了.IntelliJ IDEA被认为是目前Java开发效率最快的IDE工具,Eclipse却是大多数Java程序员使 ...

最新文章

  1. pandas使用groupby.first函数、groupby.nth(0)函数获取每个组中的第一个值实战:groupby.first函数和groupby.nth函数对比(对待NaN的差异)
  2. 图神经网络可以解决现实世界中的问题吗?
  3. netcore中使用grpc
  4. 数据库字段属性配置工具界面[用于代码生成]
  5. java的方法是什么用,Java中的本机方法是什么?它们应该在何处使用?
  6. 安装vue cli_vuecli4.x安装与搭建
  7. finally 嵌套_学习 Rust【2】减少代码嵌套
  8. CXF开发及与Spring整合开发
  9. 如何在Java中获取系统属性?
  10. angular语言前端开发_详解使用angular-cli发布i18n多国语言Angular应用_唇印_前端开发者...
  11. 源代码仓库选择-gitlab
  12. 打造个人专属邮箱,域名邮箱,邮件系统
  13. 标准库函数begin和end的使用
  14. sublime改成中文简体及菜单变成中文
  15. 计算机方面毕业生怎样写简历
  16. Prometheus(普罗米修斯)监控系统
  17. 访问html 403 iis,IIS 403 错误详细原因 及解决办法总结
  18. 复杂领域的Cynefin模型和Stacey模型
  19. 学习java的第十九天,static关键字、隐匿代码块的学习
  20. Spotify 每周推荐功能:基于机器学习的音乐推荐

热门文章

  1. 不想写脚本清理 mongodb 中的垃圾数据,ttlIndex 能帮到你!
  2. TensorFlow.NET 在工业部署中的应用
  3. 使用Docker运行SQL Server
  4. 疫情期间,千万级系统宕机N次,老板撂下狠话:没法把性提升10倍,全员解雇!...
  5. Chrome让人失望,是时候转到Firefox或Edge?
  6. asp.net core系列 71 Web架构分层指南
  7. 从阿里中台战略看企业IT架构转型之道(下)
  8. 代码整洁之道(Clean Code)- 读书笔记
  9. .Net Core应用框架Util介绍(四)
  10. Json.NET 不再有超过120个依赖项