一、Java是面向对象的编程性语言
1、什么是面向对象
完成一件事情,是对象与对象之间进行交互完成
2、面向对象关注的三点:
找对象 -> 抽象一个类出来
创建对象-> 通过new关键
使用对象
举个生活中的例子来帮助理解:对于洗衣服来说,
面向过程:倒水 -> 放衣服 -> 加洗衣液 -> .....->拧干衣服
面向对象:人 将衣物与洗衣液一起放入洗衣机
整个过程是人、衣服、洗衣液、洗衣机四个对象之间交互完成,人不需要关心衣物是如何洗的
二、什么是类和对象
1、什么是类
举例:
定义一个person类,属性有姓名、年龄;方法有sleep(),eat();
class Person{
public String name;//属性(成员变量)
public int age;
public void sleep(){ //方法(成员方法)
System.out.println("睡觉");
}
public void eat(){
System.out.println("吃饭");
}
}
public class TestDemo {
public static void main(String[] args) {
Person person = new Person(); //通过new关键字实例化多个对象
}
}
成员变量可以不初始化,每个成员变量都是它所对于的0值,程序运行不会报错。
(1)引用类型对应的是null
(2)boolean对应的是false
(3)char对应的是\u000,是Unicode编码对应的空格
2、什么是对象
类产生对象(通过实例化) —> 通过new关键字创建对象
可以这样比喻类和对象的关系:类是建造房子的图纸,对象是房子实体,一个类可以创建多个对象。
三、构造方法
当我们实例化一个对象的时候,一定会有这两部,但不一定只有这两步
1.为对象分配内存
2.调用合适的构造方法
1、构造方法作用:
是用来帮成员变量进行初始化的,构造方法是一种特殊的成员方法
方法中的变量称为局部变量,局部变量是必须要初始化的,不然编译器会报错;
而成员变量可以不初始化,编译器会给它赋初值。
2、初始化成员变量:
方法一:利用set()方法初始化
public class Date {
public int year;
public int month;
public int day;
public void setDay(int y,int m,int d) { //set方法
this.year = y;
this.month = m;
this.day = d;
}
public static void main(String[] args) {
//构造三个日期类型的对象
Date d1 = new Date();
Date d2 = new Date();
Date d3 = new Date();
//利用set方法初始化
d1.setDay(2000,9,25);
d2.setDay(2002,7,14);
d3.setDay(2020,11,7);
}
}
方法二:利用构造方法初始化
1、 名字与类名相同,没有返回值,设置成void也不行
2、一般使用public进行修饰
3、在创建对象时,由编译器自动调用,并且在对象的生命周期内只调用一次
public class Date {
public int year;
public int month;
public int day;
public Date(int y,int m,int d) { //构造方法
this.year = y;
this.month = m;
this.day = d;
}
public static void main(String[] args) {
Date date = new Date(2000,9,25); //在实例化的时候就进行赋值
}
}
3.构造方法的重载
(1)当我们没有写构造方法时,编译器会帮我们默认提供一个不带参数的构造方法
例如:
(2)构造方法的重载以及应用
使用构造方法进行初始化
4.打印对象的属性
方法一:自己写一个show()方法
方法二:使用自带的toString
(1)右键,选Generate
(2)选择toString
写了toString
如果我们不写toString,系统就会调用默认的Object类的toString方法,就会变成这样
四、this的使用
1.this.data; //访问属性
2.this.func(); //访问方法
3.this(); //调用本类中其他构造方法
详情见博客