一些概念
面向过程:代码的每一个步骤都需要考虑清楚,并且亲力亲为。程序员的角色是执行者,面向过程的代表语言是C语言。
面向对象:不考虑代码的具体实现步骤,根据不同的对象去使用不同的功能即可,程序员的角色由执行者转换为领导者。代表语言为Java。
面向对象是基于面向过程的,是相对而言的。
面向对象思想是描述现实事务
属性:描述事物的特征
行为:描述事物可以作什么事情
面向对象的属性:成员变量
面向对象的行为:成员方法
成员变量:在类中,方法外
成员方法:去掉static的方法
Java的基本单位是类
类就是属性和行为的集合
类和对象的关系
类:一类事物的总称
对象:一类事物的具体某一表现
要使用对象,先创建对象
创建格式
类名 对象名 =new 类名();
对象名。成员方法();
对象名。成员变量
成员变量和局部变量的区别
- 在类中的位置不同
成员变量:在类中,方法外
局部变量:在方法中或者在方法的形参中 - 在内存中的位置不同
成员变量:在堆中
局部变量:在栈中 - 生命周期不同
成员变量:随着对象的创建而创建,随着对象的销毁而销毁
局部变量:随着方法的调用而创建,超出作用域后就结束。 - 默认值不同
成员变量:有默认值
局部变量:没有默认值,不赋值不可直接使用
构造方法
构造方法用于对对象进行初始化
构造方法格式
构造方法不需要返回值,并且void都不需要写。
public 类名(形参){
初始化代码;
}
注意点:构造方法也是可以重载的。
系统默认提供一个无参的构造方法,但是如果手动提供了有参的构造方法,那么系统就不会再提供默认的无参构造
定义一个类时,需要提供无参和全参构造
面向对象三大特征
封装 继承 多态
封装:private
使用private修饰的成员变量,需要提供setter getter方法
Set:返回值类型是void 方法名是setXx格式
get:返回值类型是对应的成员变量的类型,方法名是getXx格式
this:谁调用,this就代表哪一个对象
this.成员变量:可以区分开成员变量和局部变量
this调用本类方法
this.成员方法名(实参)
this调用构造方法:this(实参)
自动生成set/get方法快捷键
alt +shift +s ---->Generate Getters and Setters–>Select All
自动生成无参和全参的构造
alt +shift +s ---->Generate Constructor using Fields–>Select All
案例
package cn.tedu.demo02;
public class Mother {
// 成员变量
private String name;// 姓名
private int age;//年龄
private char gender;//性别
private double height;//身高
private double weight;//体重
private String address;//地址
private String email;// 邮箱
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 char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Mother(String name, int age, char gender, double height, double weight, String address, String email) {
this.name = name;
this.age = age;
this.gender = gender;
this.height = height;
this.weight = weight;
this.address = address;
this.email = email;
}
public Mother() {
}
}