https://liu-yaohua.github.io

0%

java

java入门

java的诞生

java语言相对于其他语言的最大优势就是所谓的平台无关性,即跨平台。无论哪种编程语言编写的应用程序都需要经过操作系统和处理器来完成程序运行,因此这里指的平台是由操作系统(OS)和处理器(CPU)所构成。与平台无关是指软件的运行不因操作系统、处理器的变化导致发生无法运行或者出现运行错误。平台最终识别并且执行的是一种由0和1组成的序列代码,我们称之为机器指令。相同的cpu和不同的操作系统所形成的平台的机器指令可能也不是相同的。

java之所以能与平台无关是因为java可以在平台之上再提供一个java运行环境,该java运行环境是由java虚拟机、类库以及一些核心文件组成。java虚拟机的核心是所谓的字节码指令,即可以被java虚拟机直接识别、执行的一种由0和1组成的序列代码。字节码并不是机器指令,因为它不和特定的平台相关,不能被任何平台直接识别和执行。java针对不同平台提供的java虚拟机的字节码指令都 是相同的。

java环境安装

百度搜索java jdk下载安装,注意不是jre,然后配置环境变量。

安装完成后,在bin目录下,javac是编译器,java是解析器

java helloworld

1.应用程序的主类

一个java应用程序可以由若干个java源文件所构成,每个源文件又可以由若干个书写形式互相独立的类组成,但其中一个源文件必须有一个类含有public static void main(String args[])方法,这个类称之为这个应用程序的主类。args[]是main方法的一个参数,是一个字符串类型的数组。所有的java应用程序都是从主类的main开始执行。

2.源文件的命名

源文件的名字与类的名字相同,扩展名是.java。注意大小写,因为java区分大小写。同时java有着一些命名规范,但并不会强制要求这样写:

  1. 包的命名:全部小写(com.blue)

  2. 类的命名:单词首字母大写(Hello)

  3. 方法的命名:首字母小写,后面的单词首字母大写(getName)

  4. 常量的命名:全部大写,常加入下划线(MAX_VALUE)

    在桌面新建一个文件夹javaDemo,新建Hello.java,写入以下内容

    1
    2
    3
    4
    5
    public class Hello{
    public static void main(String args[]){
    System.out.println("hello world");
    }
    }

    打cmd窗口

    编译:javac Hello.java

    解析执行:java Hello(主类名)

3.数据类型

float型数据,如3.14f,一定要加f

4.常量

用final关键词修饰

5. 枚举

1
2
3
enum Season{spring, summer, autumn, winter};
Season x;
x=Season.spring;

6.eclipse

以插件为主

7.类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Vehicle{
double speed;//变量声明部分,刻画速度
int power;//变量声明部分,刻画功率

void speedUp(int s){
speed = speed - s;
}

void speedDown(int d){
speed = speed - d;
}
void setPower(int p){
power = p;
}
int getPower(){
return power;
}
double getSpeed(){
return speed;
}


}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
类声明
class Vehicle{

}
其中的“class Vehicle”称作类声明,"Vehicle"是类名
方法
方法的定义包括两部分:方法声明和方法体,一般格式为:
方法声明部分{
方法体的内容
}
方法声明包括方法名和方法的返回类型,如:
double getSpeed(){
return speed;
}
如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效,如果想在该方法中使用被隐藏的成员变量,必须使用关键字this

类体分为两部分:一部分是变量的声明,另一部分是方法的定义。

变量声明部分所声明的变量被称做成员变量。成员变量在整个类内都有效,其有效性与它在类体中书写的先后位置无关。在声明成员变量时可以同时赋予初值,但不可以在类体中有单独的赋值语句,一般在方法中操作。

类是面向对象语言中最重要的一种数据类型,那么就可以用它来声明变量。在面向对象语言中,用类声明的变量被称作对象。和基本数据类型不同,在用类声明对象后,还必须要创建对象,即为声明的对象分配变量(确定对象所具有的属性),当使用一个类创建一个对象时,也称给出了这个类的一个实例。

8.构造方法

构造方法是一种特殊的方法,它的名字必须与它所在的类的名字完全相同,而且没有类型。允许一个类中编写若干个构造方法,但必须保证他们的参数不同,即参数个数 不同,或者是参数类型不同。

需要注意的是

1.如果类中没有编写构造方法,系统会默认该类只有一个构造方法,该默认的构造方法是无参数的,且方法体中没有语句。

2.如果类里定义一个或多个构造方法,那么Java不提供默认的构造方法。

1
2
3
4
5
6
7
8
9
10
11
12
public class Person{
int age;
float height;

Person(int age){
this.age=age;
}
Person(float height){
this.height=height;
}

}

9.创建对象

1.对象的声明

一般格式:

类的名字 对象名字;如Vehicle car;这里Vehicle是一个类的名字,car是我们声明的对象的名字。

2.为声明的对象分配内存

使用new运算符和类的构造方法为声明的对象分配变量,即创建对象。如果类中没有构造方法,系统会调用默认的构造方法,默认的构造方法是无参数的,且方法中没有语句,如 car =new Vehicle();

1
2
3
4
5
6
7
8
9
10
11
public class Demo15{

public static void main(String[] args){
Person tom;
tom= new Person(10);

Person bob = new Person(1.8f);
}


}

3.使用对象

对象不仅可以操作自己的变量改变状态,而且能调用类中的方法产生一定的行为。

通过使用运算符“。”,对象可以实现对自己变量的访问和方法的调用。

a.对象 操作自己的变量(对象的属性)

对象.变量;

b.对象调用类中的方法(对象的功能 )

对象.方法

c.体现封装

当对象调用 方法时,方法中出现的成员变量就是指分配给该对象 的变量

10.可变参数

1
2
3
4
5
6
7
public int getSum(int... x){
int sum=0;
for(int i=0;i<x.length;i++){
sum=sum+x[i];
}

}

其实就是当数组用

11.实例变量与类变量的声明

在声明成员变量时,用static修饰的称作类变量,否则称实例变量

1
2
3
4
5
class Dog{
float x;//实例变量
static int y;//类变量

}

类似也有实例方法和类方法。其实就是c/c++静态变量和普通变量的区别

12.方法重载

一个类中可以有多个方法具有相同的名字但这些方法的参数必须不同。