1.类与对象的定义
定义一个类:
class Person { // 定义一个类
String name; // 【成员属性】人的姓名
int age; // 【成员属性】人的年龄
/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
System.out.println("姓名:" + name + "、年龄:" + age);
}
}
对象实例化进行类操作:
class Person { // 定义一个类,
String name; // 【成员属性】人的姓名
int age; // 【成员属性】人的年龄
/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
System.out.println("姓名:" + name + "、年龄:" + age);
}
}
public class JavaDemo {
public static void main(String args[]) {
Person per = new Person(); // 声明并实例化对象
per.name = "张三"; // 为成员属性赋值
per.age = 18; // 为成员属性赋值
per.tell(); // 进行方法的调用
}
3.观察类中成员属性默认值:
class Person { // 定义一个类,
String name; // 【成员属性】人的姓名
int age; // 【成员属性】人的年龄
/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
System.out.println("姓名:" + name + "、年龄:" + age);
}
}
public class JavaDemo {
public static void main(String args[]) {
Person per = new Person(); // 声明并实例化对象
per.tell(); // 进行方法的调用
}
}
4.NullPointException
class Person { // 定义一个类,
String name; // 【成员属性】人的姓名
int age; // 【成员属性】人的年龄
/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
System.out.println("姓名:" + name + "、年龄:" + age);
}
}
public class JavaDemo {
public static void main(String args[]) {
Person per = null ; // 声明对象
per.name = "张三"; // 为成员属性赋值
per.age = 18; // 为成员属性赋值
per.tell(); // 进行方法的调用
}
}
5.使用匿名对象进行类操作
class Person { // 定义一个类,
String name; // 【成员属性】人的姓名
int age; // 【成员属性】人的年龄
/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
System.out.println("姓名:" + name + "、年龄:" + age);
}
}
public class JavaDemo {
public static void main(String args[]) {
new Person("张三", 18).tell(); // 进行方法的调用
}
}
2.构造方法
定义构造方法为属性初始化:
class Person { // 定义一个类
private String name; // 【成员属性】人的姓名
private int age; // 【成员属性】人的年龄
public Person(String tempName, int tempAge) { // 构造方法
name = tempName ; // name属性初始化
age = tempAge ; // age属性初始化
}
// setter、getter略 ...
public void tell() {
System.out.println("姓名:" + name + "、年龄:" + age);
}
}
public class JavaDemo {
public static void main(String args[]) {
Person per = new Person("张三", 18); // 声明并实例化对象
per.tell() ; // 进行方法的调用
}
}
构造方法重载:
class Person { // 定义一个类
private String name; // 【成员属性】人的姓名
private int age; // 【成员属性】人的年龄
public Person() { // 【构造方法重载】定义无参构造方法
name = "无名氏" ; // 设置name属性内容
age = -1 ; // 设置age属性内容
}
public Person(String tempName) { // 【构造方法重载】定义单参构造方法
name = tempName ; // 设置name属性内容
}
public Person(String tempName, int tempAge) { // 【构造方法重载】定义双参构造方法
name = tempName ; // name属性初始化
age = tempAge ; // age属性初始化
}
// setter、getter略 ...
public void tell() {
System.out.println("姓名:" + name + "、年龄:" + age);
}
}
public class JavaDemo {
public static void main(String args[]) {
Person per = new Person("张三"); // 声明并实例化对象
per.tell() ; // 进行方法的调用
}
}
3.this关键字
调用本类属性:
class Person { // 定义一个类
private String name; // 【成员属性】人的姓名
private int age; // 【成员属性】人的年龄
/**
* 定义构造方法,该方法中的参数名称与成员属性名称相同
* @param name 设置name成员属性内容
* @param age 设置age成员属性内容
*/
public Person(String name, int age) {
this.name = name ; // 使用this标注本类属性
this.age = age ; // 使用this标注本类属性
}
public void tell() { // 使用this明确标准本类属性
System.out.println("姓名:" + this.name + "、年龄:" + this.age);
}
}
public class JavaDemo {
public static void main(String args[]) {
Person per = new Person("张三", 12); // 实例化Person类对象
per.tell(); // 信息输出
}
}
调用本类方法:
class Person { // 定义一个类
private String name; // 【成员属性】人的姓名
private int age; // 【成员属性】人的年龄
public Person(String name, int age) {
this.setName(name); // 调用本类setName()方法
setAge(age) ; // 不使用“this.方法()”也表示调用本类方法
}
public void tell() { // 使用this明确标准本类属性
System.out.println("姓名:" + this.name + "、年龄:" + this.age);
}
}
public class JavaDemo {
public static void main(String args[]) {
Person per = new Person("张三", 12); // 实例化Person类对象
per.tell(); // 信息输出
}
}
4.static关键字
定义static属性:
class Chinese {
private String name ; // 【普通成员属性】保存姓名信息
private int age ; // 【普通成员属性】保存年龄信息
static String country = "中华人民共和国" ; // 【静态成员属性】国家,暂时不封装
public Chinese(String name,int age) { // 设置普通属性内容
this.name = name ; // 设置name属性内容
this.age = age ; // 设置age属性内容
}
public String getInfo() {
return "姓名:" + this.name + "、年龄:" + this.age + "、国家:" + this.country ;
}
}
public class JavaDemo {
public static void main(String args[]) {
Chinese perA = new Chinese("张三",10) ; // 实例化Chinese类对象
Chinese perB = new Chinese("李四",10) ; // 实例化Chinese类对象
Chinese perC = new Chinese("王五",11) ; // 实例化Chinese类对象
perA.country = "伟大的中国" ; // 修改静态属性内容
System.out.println(perA.getInfo()) ; // 获取对象信息
System.out.println(perB.getInfo()) ; // 获取对象信息
System.out.println(perC.getInfo()) ; // 获取对象信息
}
}
static定义方法:
class Chinese {
private String name ; // 【普通成员属性】保存姓名信息
private int age ; // 【普通成员属性】保存年龄信息
private static String country = "中国" ; // 【静态成员属性】保存国家信息
public Chinese(String name,int age) { // 设置普通属性内容
this.name = name ; // 设置name属性内容
this.age = age ; // 设置age属性内容
}
/**
* 定义static方法,此方法可以在没有实例化对象的情况下直接调用
* 利用此方法可以修改静态属性country的内容
* static方法中不允许使用this关键字
* @param c 要修改的新内容
*/
public static void setCountry(String c) {
country = c; // 修改static属性
}
// setter、getter略
/**
* 获取对象完整信息方法,该方法为普通方法,需要通过实例化对象调用,可以使用this调用static属性
* 但是从严格意义上来讲,此时最好是通过类名称调用,例如:“Chinese.country”
* @return 对象完整信息
*/
public String getInfo() {
return "姓名:" + this.name + "、年龄:" + this.age + "、国家:" + Chinese.country ;
}
}
public class JavaDemo {
public static void main(String args[]) {
Chinese.setCountry("中华人民共和国") ; // 修改静态属性内容
Chinese per = new Chinese("张三",10) ; // 实例化Chinese类对象
System.out.println(per.getInfo()) ; // 获取对象信息
}
}