JAVA学习资料(1)————什么是JAVA?JAVA的第一个程序
作者:互联网
我尽量,尽量说的通俗一些。这节课主要是先认识一下学习JAVA过程中的难点和重点,方便以后的学习。
前言:类和对象
你知道嘛,C++叫面向对象编程,当然这个对象不是指人,而是数据,什么是对象?什么是类?这点需要你务必掌握。
类指的是同一类的东西,比如小猫,我可以编程的时候定义一个类,这个类我给他起个名字叫小猫,但是小猫有很多种呀,比如公猫 母猫 黑猫 白猫,那我就可以用小猫来定义 来称呼他们,比如小猫.公猫、小猫.白猫、小猫.黑猫。
对象是什么呢,是这些黑猫白猫的属性,是他们自己的东西,比如他们的身高、体重。
综上,我在定义小猫这个类的时候,我就要在这个类中加入类的对象,就是身高、体重。然后,我再用小猫去定义各种黑猫白猫,我定义 小猫.黑猫 体重30身高40,定义 小猫.白猫 体重20身高35
其实可以将类理解为C语言的结构体,你一定忘了结构体了,他是这样的:
struct maomao{ //定义一个结构体,叫做maomao,里面有身高和体重的信息
int tizhong; //体重
intt shengao; //身高
};
struct maomao baimao; //用猫猫结构体定义一只白猫
baimao.shengao=30; //给白猫的身高赋值
baimao.tizhong=30; //给白猫的体重赋值
struct maomao heimao; //用猫猫结构体定义一只黑猫
heimao.shengao=30; //给黑猫的身高赋值
heimao.tizhong=30; //给黑猫的体重赋值
在JAVA中,类的定义是这样的
class Maomao //定义一个类,叫做maomao,里面有身高和体重的信息
{
public:
int tizhong; //体重
intt shengao; //身高
};
Maomao baimao; //用猫猫结构体定义一只白猫
baimao.shengao=30; //给白猫的身高赋值
baimao.tizhong=30; //给白猫的体重赋值
Maomao heimao; //用猫猫结构体定义一只黑猫
heimao.shengao=30; //给黑猫的身高赋值
heimao.tizhong=30; //给黑猫的体重赋值
一、什么是JAVA
首先来说JAVA的特性,这个简单了解一下就行:
1.Java 语言是简单的:
Java 语言的语法与 C 语言和 C++ 语言很接近,一些基础的东西都一样,比如if、while、switch语句。。Java 语言没有了C语言中的指针,而是引用。
2.Java 语言是面向对象的:
通俗点说,JAVA和C++一样,也是有类的,就是你定义一类东西叫小猫,然后你能往这个小猫里面存好多数据,存变量,存函数,之后想要用小猫里的东西,就不能直接用了,就得先说小猫,才能用,这样的话就对数据有一个保护作用了,小猫就有她自己的隐私了,小狗就拿不了她的东西了。
从专业知识上来说,Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。
3.Java语言是分布式的:
通俗点说,JAVA可以编写网络相关的程序,比如我和你提过的聊天软件,比如用JAVA编写一个网站,都可以实现。
从专业知识上来说,Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。
4.Java 语言是健壮的、安全的:
通俗点说,Java这个语言是比较安全的,不会自己给自己产生BUG
从专业知识上来说,Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。
Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。
5.Java 语言是多线程的:
通俗点说,不像C语言,运行之后就只是从上到下的运行一个代码,JAVA可以同时运行两个地方的代码
在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。
6.Java 语言是体系结构中立的、可移植的:
通俗点说,JAVA在什么环境下都能用,可以理解成手机也行电脑也行,电脑上的软件能变成手机上的软件
从专业知识上来说,Java 程序(后缀为 java 的文件)在 Java 平台上被编译为体系结构中立的字节码格式(后缀为 class 的文件),然后可以在实现这个 Java 平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。
7.Java 语言是解释型的:
如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
8.Java 是高性能的:
与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。
9.Java 语言是动态的:
Java 语言的设计目标之一是适应于动态变化的环境。Java 程序需要的类能够动态地被载入到运行环境,也可以通过网络来载入所需要的类。这也有利于软件的升级。另外,Java 中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
二、JAVA的第一个程序
JAVA的第一个程序:
public class Maomao
{
public static void main(String[] args)
{
System.out.println("你好文文");
}
}
这个程序和C语言的第一个程序一样,都是输出一句“你好文文”,如果用C语言写,就是这样:
#include<stdio.h>
int main()
{
printf("你好文文");
return 0;
}
可以明显看出,JAVA是比C语言要简洁的,为什么呢,因为很多东西JAVA已经自己弄好了藏起来了,就不用你再写了。
下面详细解释一下这个程序,首先第一行,
public class Maomao
这一行是定义了一个“类”,类的英文是class,这个类前文提到过是什么东西。
class后面的Maomao就是类的名字,这个名字随便叫什么都行,只要是英文而且首字母大写,这里我叫她“Maomao(猫猫)”。
这里的public是用来修饰类的,意思就是公开的,谁都可以用这个猫猫里面的变量和函数。
修饰类的还有private(私有的),意思就是私有,只有猫猫才能用她里面的变量和函数。
还有protected(保护),意思就是只有猫猫和他的子女朋友才能用猫猫的东西,其他人都不能用,这的子女、朋友,后面会讲,现在先了解。
然后下面的public static void main(String[] args)
其实这是一个函数,刚才定义了一个类叫猫猫,这个猫猫里面的函数或者是变量在定义的时候前面也要用public等修饰,这个函数就是公开的。
这里的static意义和C语言里面的不同,这里加上static之后,运行程序的时候就直接运行猫猫类里面的这个函数了,如果没有这个static的话,运行程序的时候不会直接运行这个函数,会运行其他的东西。
void main很熟悉了吧,这个和C语言一样,void是无返回值,就是不需要return 0; main就是主函数。
这个String[] args是这个函数的参数,这个叫运行参数,基本上用不到,了解一下就行。
这个函数干什么了呢,看下函数里面,是这样一句System.out.println(“你好文文”);
System.out.println();就相当于C语言里面的printf()一样,用来输出的,和C语言不同的是,如果想要换行的话,就要写成System.out.println(“你好文文”);不换行的话,就是System.out.print(“你好文文”);
而在C语言中,换行是printf(“你好文文\n”);不换行是print(“你好文文”);
其实System是java.lang里面的一个类,而out就是System里面的一个静态数据成员,而且这个成员是java.io.PrintStream类的引用。所以System.out是调用了System类的静态数据成员out。
是不是听傻了,所以你看啊,JAVA把东西都封起来了,都变成现成的工具了,没办法从底层去修改什么。
public static void main(String[] args)专业解释如下:
vm在试图运行一个类之前,先检查该类是否包含一个特殊方法。这个方法必须是公有的,以便在任何位置都能访问得到。这个方法必须是static的,因为这个方法不能依赖任何该类的实例即可运行,而非static的方法,在运行之前要先创建该类的实例对象。
这个方法没有返回值。和C/C++程序不一样,java的程序默认都以常态结束,所以main不返回int。如果要以非常态结束程序,可以用System.exit(1)。
这个方法必须可以接受数目不定的String类型的参数,因为运行者可能要附加运行参数。如java HelloWorld jack 100,这里的jack和100就是运行参数。
为什么是String呢?因为String具有普遍性。任何字面形式都可以解释成String,而其他类型则不然(如jack就不能解释成整数或浮点数),所以用String来存储参数最合适。而因为参数数目不限一个,所以用了数组,即String[]。在Java 1.5以后,还可以写成String…,表示数目不定。
至于参数的变量名可以任意,只要保证在方法内部按该变量名来获得参数就行了,从变量的作用角度来说,叫arguments或args当然是最合适的。
至于这个方法的名字为什么一定是main,有历史原因,因为最早的C以main函数作为程序入口,java沿用了这个历史传统。
呼~终于写完了,边学边写,写了将近三个小时,第一节课嘛,都是概念,难免有点晦涩,凑合看嘛
标签:小猫,第一个,猫猫,程序,Java,JAVA,运行,语言 来源: https://blog.csdn.net/weixin_45076238/article/details/115256760