面向对象
面向对象
面向对象侧重于分模块解决问题
面向对象的优点:维护简单 易于扩展 代码复用性
构造方法
如果该类中没有构造方法,就会有一个默认公共的无参构造方法,而如果编写了构造方法,默认的构造方法就没有了
构造方法没有返回值,连void也没有
构造方法的方法名 应该与类名保持一致
语法: 权限修饰符 方法名 (参数) {方法体}
类和对象
类
类是对某个事物的客观描述 内部包括抽象的属性
对象
new一个类的对象,然后可以让其具有具体的对象的属性
public class Student{
int id;
String name;
boolean sex;
String address;
}
静态变量与成员变量
如果这个属性是类对象共有的属性和值 就定义为静态的
如果这个属性是类对象共有的属性,但是值可能不同 就定义为动态的
如果这个方法中有成员属性使用,则该方法是成员方法
如果这个方法中不需要成员属性使用,则该方法是静态方法
对象的实例化和使用
对象的实例化 例如 Student s1 = new Student(2020185,"张三",'男',"北京");
查询 System.out.println(s1.address);
修改 s1.name = "李四";
Bean getters/setters方法
public class Animal {
private String ZhongLei;
private String name;
private int age;
private int price;
public Animal(String ZhongLei,String name,int age,int price){
this.ZhongLei = ZhongLei;
this.name = name;
this.age = age;
this.price = price;
}
public String getZhongLei() {
return ZhongLei;
}
public void setZhongLei(String zhongLei) {
ZhongLei = zhongLei;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
常见异常
Exception in thread "main" java.lang.NullPointerException 空指针异常
例如
Animal a1 = new Animal("暹罗猫", "jojo", 2, 2000);
Animal a2 = new Animal("哈士奇", "kk", 3, 800);
a2 = null;
System.out.println(a2.getPrice()); //空指针异常
将a2置为null 再去找price 就无法找到 出现空指针异常
对象调用静态属性
public static void main(String[] args) {
customer c1 = new customer(18);
c1 = null;
System.out.println(c1.height); //heigh是静态变量 c1是null不影响访问height的值
customer c2 = new customer(25);
customer c3 = new customer(25);
c2.age = 38;
System.out.println(c2.age); //得到38
System.out.println(c3.age); //得到25
c2.height = 180;
//修改静态变量 所有对象调用都是新的height
System.out.println(c2.height);
System.out.println(c3.height);
System.out.println(customer.height);
}
}
class customer{
int age;
static int height = 170;
public customer(int age){
this.age = age;
}
}