简单的运行方式
一般先用javac命令运行.Java文件,这个过程是将Java源文件编译成class字节码文件,生成一个hello.class字节码文件,然后再用Java命令运行Java源文件中的hello类,即可实现编程目的。
javac hello.java
java hello
基本语法
区分大小写,类名首字母大写,每个单词首字母大写,方法名:小写字母开头,后面每个单词首字母大写,源文件名必须和类名相同,主方法入口是public static void main(String []args),意思是,这是所有Java程序的入口。
类和对象https://www.w3cschool.cn/java/java-object-classes.html
1.对象集合在一起是一个类,类的实例化是一个对象。Java中所有都是从对象出发,例如:String []a的意思是定义一个String类的数组a。
C++中:
string *a=['qdwsd','dfdsa'];//定义一个指向数组的指针a
string a ;//定义一个字符串变量a
Java中:
String []a ;//定义一个String类的数组a
类的内容包括成员方法(规定类的行为)和成员变量(规定类的属性)。
2.在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名
3.用关键字new来创建一个新的对象(对象的创建分声明、实例化、初始化三步)
Puppy myPuppy = new Puppy( "tommy" );
声明 实例化 初始化
4.访问对象的(成员)方法和变量(变量:对象是类的实例化,即:一个对象=一个实例,此处的“变量”是指类的成员变量进行实例化后的内容)
对象名.(成员)方法名,对象名.变量名
public class Puppy{//定义类Puppy int puppyAge;//定义类的成员变量puppyAge public Puppy(String name){//定义构造方法 // 这个构造器仅有一个参数:name System.out.println("Passed Name is :" + name ); } public void setAge( int age ){//定义类Puppy的(成员)方法setAge puppyAge = age; }
/* 创建对象 */ Puppy myPuppy = new Puppy( "tommy" ); /* 通过方法来设定age */ myPuppy.setAge( 2 );
myPuppy.puppyAge;//访问对象myPuppy的变量
源文件
1.一个源文件中只能有一个public类,可以有多个非public类,源文件的名字要和public类的名字相同;import语句应该放在package语句和类定义之间;若源文件中的某个类定义在package中,则package语句应该在源文件的首行;package包主要用来对类和接口进行分类,避免由于类名相同而难以区分的问题。
2.import java.io.*;//此行表示命令编译器载入java_installation/java/io路径下的所有类
3.在Java中,如果给出一个完整的限定名,包括包名、类名,那么Java编译器就可以很容易地定位到源代码或者类。
数据类型
内置数据类型:Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
引用数据类型:引用类型变量由类的构造函数创建,对象、数组都是引用数据类型;所有引用类型的默认值都是null;
变量类型
Java的方法
1.方法的定义
修饰符 返回值类型 方法名 (参数类型 参数名){
...
方法体
...
return 返回值;
}
2.当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int larger = max(30, 40);
如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。下面的调用是个语句:
System.out.println("Welcome to Java!");
继承https://www.w3cschool.cn/java/java-inheritance.html
1.创建分等级层次的类。继承可以理解为一个对象从另一个对象获取属性的过程。 通过使用关键字extends,子类可以继承父类的除private属性外所有的属性。
2.所有Java的类均是由java.lang.Object类继承而来的,所以Object是所有类的祖先类,而除了Object外,所有类必须有一个父类,且只能有一个父类。继承的规则如下:
一般我们继承基本类和抽象类用extends关键字,实现接口类的继承用implements关键字;
Java类只支持单继承(继承基本类和抽象类),也就是说,一个类不能继承多个类;接口可以多继承,即一个类可以同时实现(用implements关键字)多个接口;
类和类之间可以extends继承,接口和接口之间也可以用extends继承,类可以实现implements接口,接口不能继承extends类,接口也可以继承extends接口;
如果在基本类前添加final修饰,也就定义该类不可被继承,该类不能作为父类。
例如:
public class Apple extends Fruit implements Fruit1, Fruit2{}//Apple类只能继承Fruit一个类,但是Fruit类却可以同时实现Fruit1和Fruit2两个接口。
如:public interface Fruit1 extends Fruit {}//这是接口中的多重继承
3.继承中最常使用的两个关键字是extends和implements。
这两个关键字的使用决定了一个对象和另一个对象是否是IS-A(是一个)关系。IS-A就是说:一个对象是另一个对象的一个分类。
Implements关键字使用在类继承接口的情况下, 这种情况不能使用关键字extends。
4.可以使用 instanceof 运算符来检验Mammal和dog对象是否是Animal类的一个实例。返回结果是true或false。
5.Van类和Speed类是HAS-A关系(Van有一个Speed),这样就不用将Speed类的全部代码粘贴到Van类中了,并且Speed类也可以重复利用于多个应用程序。