主要内容:学习java中的面向对象编程思想
1.java中的类和对象
- 类:相同事物共同特征的描述
- 对象:类的具体的实例,因此对象也叫做实例
- 在Java中必须先定义类,才能得到对象
2.类的定义
- 格式
-
注意事项:
- 类名首字母建议大写,有意义,满足驼峰,不要用关键字,合法的标志符
- 一个Java文件中可以定义多个类,但是只能一个类是public修饰的,而且public修饰的类名必须成为Java代码的文件名称,否则报错!
-
例子
public class Car {
// 名词(属性,成员变量)
String name;
double price;
// 动词(行为,成员方法)
public void start(){
System.out.println(name + "价格是" + price +"启动成功~~");
}
public void run(){
System.out.println(name +
"价格是" + price +"性能很好,跑的很快~~");
}
}
3.对象的创建
- 格式:类名 对象名 = new 构造器();
- 使用:
- 对象名.成员变量
- 对象名.成员方法
4.构造器
-
作用:初始化一个类的对象,并返回这个对象的地址
-
分为无参构造器和有参构造器
- 无参数构造器
- 初始化一个类的对象,并返回这个对象的地址,里面的数据都是默认值
- 有参数构造器
- 初始化一个类的对象,并返回这个对象的地址,并且可以同时为对象赋值
- 无参数构造器
-
例子:
public class Car {
String name;
double price;
/**
无参数构造器
*/
public Car(){
System.out.println("无参数构造器被调用了~~");
}
/**
有参数构造器
*/
public Car(String n, double p){
System.out.println("有参数构造器被调用了~~");
name = n;
price = p;
}
}
- 注意事项:
- 任何类写出来自带一个无参数构造器,写不写都有
- 如果你在这个类中定义了一个有参数构造器了,那么无参数构造器就消失了,此时,如果你还要使用无参数构造器,你必须自己写一个。
5.this关键字
- 作用:代表了当前对象的地址,可以访问当前对象的成员变量和成员方法。
- 用法:
// (1)用在有参数构造器中
public Car(String name, double price){
// 注意:this在构造器中,代表构造器正在初始化的那个对象。
System.out.println(this);
this.name = name;
this.price = price;
}
//(2)用在方法中
public void goWith(String name){
// 注意:this在方法中,谁调用这个方法this就代表谁!
System.out.println(this.name + "正在和"
+ name +"比赛");
}
5.封装(后续单独深入探讨)
- 面向对象的三大特征:封装、继承、多态。
6.标准JavaBean
- 作用:创建对象,封装数据的。
- 要求:
- 成员变量private私有化。
- 提供成套的getter和setter方法
- 必须提供无参数构造器。
- 例子:
package com.itheima.javabean;
public class User {
private double height;
private String name;
private double salary;
private String address;
private String phone;
public User() {
}
public User(double height, String name, double salary, String address, String phone) {
this.height = height;
this.name = name;
this.salary = salary;
this.address = address;
this.phone = phone;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getSalary() {
return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}