方法:一个类包含多个方法和实例字段

 

构造方法

public class Main {
public static void main(String[] args) {
Person p = new Person("Xiao Ming", 15);
System.out.println(p.getName());
System.out.println(p.getAge());
}
}

/**
* Person类
* 类名相同的方法是构造方法
*/
class Person {
private String name;
private int age;

/**
* 与类名相同的方法是构造方法
*/
public Person(String name, int age) {
this.name = name;
this.age = age;
}

public String getName() {
return this.name;
}

public int getAge() {
return this.age;
}
}

 

方法重载:方法名相同,但各自的参数不同,称为方法重载(​​Overload​​)。下面代码中2个hello,就是方法重载

class Test {
public void hello() {
System.out.println("Hello, world!");
}


public void hello(String name) {
System.out.println("Hello, " + name + "!");
}

public void hello(String name, int age) {
if (age < 18) {
System.out.println("Hi, " + name + "!");
} else {
System.out.println("Hello, " + name + "!");
}
}
}

继承:指从一处拿过来直接使用,为了说明两者至之间的关系。拿的一方为(子类Student),被拿的一方为(父类Person)。一个类只能继承一个类,就像一个儿子只有有一个爹,爹多了妈有问题。

class Person {
private String name;
private int age;

public String getName() {...}
public void setName(String name) {...}
public int getAge() {...}
public void setAge(int age) {...}
}

class Student extends Person {
// 不要重复name和age字段/方法,
// 只需要定义新增score字段/方法:
private int score;

public int getScore() { … }
public void setScore(int score) { … }
}

​super​​​关键字表示父类(超类)。子类引用父类的字段时,可以用​​super.fieldName​​。例如:

class Student extends Person {
public String hello() {
return "Hello, " + super.name;
}
}

这里使用​​super.name​​​,或者​​this.name​​​,或者​​name​​​,效果都是一样的。在Java中,任何​​class​​​的构造方法,第一行语句必须是调用父类的构造方法。如果没有明确地调用父类的构造方法,编译器会帮我们自动加一句​​super();​​​但是,​​Person​​类并没有无参数的构造方法,因此,编译失败。

在继承关系中,子类如果定义了一个与父类方法签名完全相同的方法,被称为覆写(Override)。

包作用域是指一个类允许访问同一个​​package​​​的没有​​public​​​、​​private​​​修饰的​​class​​​,以及没有​​public​​​、​​protected​​​、​​private​​修饰的字段和方法。

JVM通过环境变量​​classpath​​​决定搜索​​class​​的路径和顺序;

不推荐设置系统环境变量​​classpath​​​,始终建议通过​​-cp​​命令传入;

jar包相当于目录,可以包含很多​​.class​​文件,方便下载和使用;

​MANIFEST.MF​​​文件可以提供jar包的信息,如​​Main-Class​​,这样可以直接运行jar包。