面向对象--类的组成
类的组成:
成员变量,成员方法
今天又学习了一个新的成员:构造方法
改进一下我们之前写的类:
成员变量
构造方法
成员方法:
根据有无返回值:
1、没有返回值的成员方法
2、有返回值的成员方法
根据有无参数:
1、无参的成员方法
2、有参数的成员方法
程序示例
class Student2 {
private String name;
private int age;
//无参构造方法
Student2() {
}
//包含所有成员变量的参数的构造方法
Student2(String name, int age) {
this.name = name;
this.age = age;
}
//公共的getXxx()方法和setXxx()方法
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
//无参无返回值的成员方法
public void printHello() {
System.out.println("HelloWorld");
}
//无参有返回值的成员方法
public String getTianQi() {
return "晴天";
}
//带参无返回值的成员方法
public void sum(int a, int b) {
System.out.println(a + b);
}
//带参有返回值的成员方法
public String concat(String s1, String s2) {
return s1 + s2;
}
//定义一个方法将所有的成员变量输出
public void show() {
System.out.println("姓名:" + name + ",年龄:" + age);
}
}
public class StudentDemo {
public static void main(String[] args) {
//使用无参的构造方法创建对象
Student2 s1 = new Student2();
s1.show();
//调用无参无返回值的成员方法
s1.printHello();
//调用无参有返回值的成员方法
String tianqi = s1.getTianQi();
System.out.println(tianqi);
//调用带参有返回值的成员方法
String s = s1.concat("数加科技","yyds");
System.out.println(s);
//调用带参无返回值的成员方法
s1.sum(12,45);
//使用带参的构造方法创建对象
Student2 s2 = new Student2("陶华根",16);
s2.show();
}
}
例题
/*
标准类代码3.0版本,一个标准的手机类
分析:
手机:
属性:品牌,颜色,价格
行为:打电话,发短信,学习
类:
成员变量:brand,color,price(使用private修饰)
构造方法:无参构造方法,带参构造方法
成员方法:setXxx()和getXxx()方法
show():输出所有的成员变量
*/
public class Phone {
//定义成员变量
private String brand;
private String color;
private int price;
//定义构造方法
Phone() {
}
Phone(String brand, String color, int price) {
this.brand = brand;
this.color = color;
this.price = price;
}
//定义公共的setXxx()和getXxx()
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return brand;
}
public void setColor(String color) {
this.color = color;
}
public String getColor() {
return color;
}
public void setPrice(int price) {
this.price = price;
}
public int getPrice() {
return price;
}
//定义一个可以输出所有成员变量的方法
public void show() {
System.out.println("品牌:" + brand + ",颜色:" + color + ",价格:" + price);
}
}
/*
手机测试类:
开发中最常用的是第二种方式,单个使用永远要比混合使用要灵活
*/
public class PhoneDemo {
public static void main(String[] args) {
//使用无参的构造方法创建对象,并使用setXxx()给成员变量进行赋值
System.out.println("=======使用无参的构造方法创建对象,并使用setXxx()给成员变量进行赋值=======");
Phone p1 = new Phone();
System.out.println("未赋值前:");
p1.show();
p1.setBrand("华为");
p1.setColor("黑色");
p1.setPrice(4999);
System.out.println("赋值后:");
p1.show();
System.out.println("================================================");
System.out.println("=======使用带参数的构造方法创建对象,并使用getXxx()获取成员变量=======");
Phone p2 = new Phone("锤子手机","白色",8888);
String brand = p2.getBrand();
String color = p2.getColor();
int price = p2.getPrice();
System.out.println("品牌["+brand+"]\t颜色["+color+"]\t价格["+price+"]");
}
}