这一篇博客,主要是继续让大家对Java有一个了解,如果说上一篇博客是让大家对比C和Java,那么这一篇博客是为了让大家简单了解一下Java,粗略地讲了下其面向对象的特点.整篇博客都可以是了解即可
首先在学习Java之前,大家得了解到Java是一个面向对象的语言,而之前所学的C是面向过程的语言.至于对象是什么,在Java里,万物都是对象,具体的内容会在后续章节中讲到.为了让大家对面向对象有个初步的认识,拿上一篇博客的代码来进行举例
import java.util.Scanner;//导入Scanner库,因为代码中需要输入内容
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//Scanner类创造一个对象sc
int a = sc.nextInt();//输入a
int ge = a % 10;
int shi = a / 10 % 10;
if (a >= 10 && a <= 99) {
System.out.println(shi + " " + ge);//输出
} else if (a <= 999) {
int bai = a / 100 % 10;
System.out.println(bai + " " + shi + " " + ge);
}
}
}
我们重点来看这三行代码
import java.util.Scanner;//导入Scanner库,因为代码中需要输入内容
Scanner sc = new Scanner(System.in);//Scanner类创造一个对象sc
int a = sc.nextInt();//输入a
其中第一句叫作导包,导入java(包).util(子包).Scanner(类),从大家所学的C语言可以先理解成#include的操作,主要是为了使用一些Java已经写好的代码,比如这里的Scanner,Scanner是一个类,所以在第二句中我们利用Scanner这个类创建出了一个对象,这个对象为sc,new关键字是用来创建对象时使用的.第三句是使用对象的方法(nextInt就是方法名,至于System.in暂时不是重点,就是一个参数).可以暂且先理解成Java里的方法就是C语言里的函数.但大家应该也能感受到不同了,在C语言中,我们调用函数时,都是函数名(参数...),而在这却是对象名.方法名(参数),这也就是Java面向对象语言的特点.先有类(类中一般会定义好成员变量和成员方法等),再由类来创建对象,最会由对象调用方法.当然在Java中,也有一种情况是类名.方法名来使用方法.
有了上面的分析,大家可以来看看下面这段代码(也是上篇博客的代码)其中的两句话
import java.util.Arrays;//后续调用Arrays.fill
import java.util.Scanner;
public class Main {
public static int []dist=new int[48];
public static int fib(int n){
if(n==0 || n==1){
return n;
}
if(dist[n]!=-1){
return dist[n];
}
dist[n]=fib(n-1)+fib(n-2);
return dist[n];
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Arrays.fill(dist,-1);//使数组初始化为-1
System.out.println(fib(n));
}
}
import java.util.Arrays;
Arrays.fill(dist,-1);//使数组初始化为-1
第一句,大家已经能清楚了,这就是导入java(包).util(子包).Arrays(类),从而能使用Arrays这个(工具)类中的反方法.但到了第二句,诶,是不是有点奇怪了,怎么没有创建对象了,而是直接类名.方法名了,因为Arrays是一个工具类,里面的方法都是有static修饰的,所以只能用类名.方法名的形式,这一块大家暂时不用弄清楚,只需了解即可,后续在类和对象章节中会进一步阐述.
我想此时,大家也有点理解为什么Java一个输出,要用System.out.println()这样的写法了吧,也是为了体现出其面向对象的特点
我想,到现在大家可能对面向对象有了那么一丝的了解.那就暂时足够了.
那么接下来我们来学习学习Java的特点吧(了解即可)
1.跨平台特性:也就是说一个应用程序可以在不同的操作系统平台上运行,也就是所谓的"Write Once,runanywhere",
2.完全面向对象和简单性
3.可靠性
4.安全性
接下来再说说Java对C语言基本语法的一些改进(了解即可)
1.不支持全局变量和宏替换,使用最终变量代替宏替换,避免全局变量和宏替换副作用。
2.为每种数据类型分配固定长度,实现数据类型的跨平台特性。
3.进行类型相容性检查,防止不安全的类型转换。
4.不支持goto语句。
5.不支持指针类型,通过引用模型实现了指针的功能。
6.不支持结构类型,使用类代替;不支持联合类型。
7.不支持头文件,用import语句声明导入指定包中的类或接口。
8.内存动态存储且自动管理,动态申请数组和对象的存储空间,自动释放空间,没有指针操作方式。