Java是由Sun公司在1995年推出的面向对象开发语言,后来Sun被Oracle收购
Java分为三个体系:JavaSE、JavaEE、JavaME
Java语言特性
面向对象、分布式、健壮、安全、可移植、解释型、多线程
JDK的安装和环境配置
首先,下载并安装JDK,jdk-8u291-windows-x64.exe,如果C盘足够大就傻瓜式安装,或者指定盘再安装
然后,配置JDK环境变量, 打开控制面板,找到系统,点击高级系统设置,再点击环境变量,然后在系统变量下新建
JAVA_HOME = JDK安装目录
然后找到系统变量下的Path变量进行编辑,新建一个变量值 %JAVA_HOME%\bin
, 确定,应用
验证是否安装和配置成功:在命令行敲,java --version
看是否会出现关于java版本之类的信息显示,不是就配置失败
JDK、JRE、JVM的关系
基本语法
- 大小写敏感
- 类名:类名首字母大写,MyClass
- 方法名:方法名以小写字母开头
- 源文件名:源文件名必须和public修饰的类名相同
- 主方法入口:所有Java程序入口有public static void main(String[] args){}
Java标识符
类名、变量名、方法名都成为标识符,也就是Java组成部分的名称
标识符的规则:
- 标识符由字母、数字、下划线及美元符组成,且不能以数字开头
- 不能使用关键字和保留字
- 标识符大小写敏感
Java关键字:
关键字是有特殊含义的,不能被用来定义为标识符
其中goto、const是保留关键字,不能被使用
注意:null、true、false不是关键字,是字面常量,也不能被用于标识符
Java修饰符
主要分两类:访问控制修饰符、非访问控制修饰符
- 访问控制修饰符:default、public、protected、private
- 非访问控制修饰符:final、abstract、static、synchronized
Java变量
局部变量:在方法、构造方法或语句块中定义的变量称为局部变量。声明和初始化都在定义的范围内,结束后变量就会销毁
类变量(静态变量):声明在类中,方法之外,必须用static声明
成员变量(非静态变量):定义在类中,方法之外的变量称为成员变量。创建对象的时候实例化,可被类中的方法、构造方法或特定语句访问
Java中对象和类
对象:是类的一个实例,有状态和行为
类:是一个模板,描述一类对象的行为和状态
一个类可以包含的类型变量:局部变量、成员变量、类变量
public class Person {
String name;
int age;
void eat(){
}
void play(){
}
}
构造方法
每个类都有构造方法。没有显示的定义,会提供一个默认的无参构造方法。
创建一个对象时,至少要调用一个构造方法。构造方法与类同名,一个类可以有多个构造方法
public class Person {
String name;
int age;
public Person() { //无参构造方法
}
public Person(String name, int age) { //有参构造方法
this.name = name;
this.age = age;
}
void eat(){
}
void play(){
}
}
创建对象
使用关键字 new
创建一个对象,步骤如下:
- 声明,声明一个对象。
Person p ;
- 实例化,使用关键字
new
创建对象 - 初始化,使用new创建对象时,会调用构造方法来初始化,
p = new Person();
调用无参构造方法
public class Car {
String name;
public Car() {
System.out.println("调用无参构造方法...");
}
public Car(String name) {
this.name = name;
System.out.println("调用有参构造方法...name:" + this.name);
}
public static void main(String[] args) {
Car car1 = new Car(); //无参构造方法
Car car2 = new Car("大奔"); //有参构造方法
}
}
执行结果:
调用无参构造方法...
调用有参构造方法...name:大奔
访问实例变量和方法
通过已创建的对象的引用来访问成员变量和成员方法
public class Dog {
String name;
public Dog() {
}
public Dog(String name) {
this.name = name;
}
public void eat() {
System.out.println(this.name + "爱吃骨头");
}
public static void main(String[] args) {
Dog dog = new Dog("旺财");
System.out.println("什么狗? " + dog.name); // 创建的对象引用.属性
dog.eat(); // 创建对象引用.方法
}
}