Java面向对象(一)
1、面向对象:
- 面向对象编程(Object-Oriented Programming, OOP)
- 本质:以类的方式组织代码,以对象的组织(封装)数据。
- 抽象
- 三大特性:
- 封装
- 继承
- 多态
- 从认识论角度考虑是否先有对象后有类。对象,是具体的事物。类,是抽象的,是对对象的抽象
- 从代码运行角度考虑是先有类后有对象。类是对象的模板。
2、类与对象的关系
- 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物
- 动物、植物、手机、电脑…
- Person类、Pet类、Car类等,这些类都说用来描述/定义某一类具体的食物应该具备的特点和行为
- 对象是抽象概念的具体实例
- 张三就是人的一个具体实例
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念
3、创建与初始化对象
- 使用new关键字创建对象
- 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象,进行默认的初始化以及对类中构造器的调用
- 类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:
- 1.必须和类的名字相同
- 2.必须没有返回类型,也不能写void
- 构造器必须要掌握
public class Person {
//一个类即使什么都不写,它也会存在一个方法
//显示的定义构造器
String name;
int age;
//构造器生成快捷键: alt + insert
//1.使用new关键字,本质是在调用构造器
//2.用来初始化值
public Person(){}
//有参构造:一旦定义了有参构造,无参构造就必须显示定义
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
/*
public static void main(String[] args) {
//实例化了一个对象
Person person = new Person("binli",20);
System.out.println(person.name+person.age);
}
构造器:
1.和类名相同
2.没有返回值
作用:
1.new 本质在调用构造方法
2.初始化对象的值
注意点:
1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参的构造
*/
4、创建对象内存分析
package com.OOP.demo03;
public class Pet {
public String name;
public int age;
//无参构造
public void shout(){
System.out.println("叫了一声");
}
}
package com.OOP.demo03;
public class Application {
public static void main(String[] args) {
Pet dog = new Pet();
dog.name = "旺财";
dog.age = 3;
dog.shout();
System.out.println(dog.age);
System.out.println(dog.name);
Pet cat = new Pet();
}
}
小结:
1、类与对象
类是一个模板:抽象,对象是一个具体的实例
2、方法:
定义、调用
3、对象的引用
引用类型: 基本类型(8)
对象是通过引用来操作的:栈 ----> 堆
4、对象属性: 字段Field 成员变量
默认初始化:
数字: 0 0.0
char :u0000
boolean:false
引用:null
修饰符:属性类型 属性名 = 属性值!
5、对象的创建和使用
必须使用new关键字创造对象,构造器 Person binli = new Person();
对象的属性: binli.name
对象的方法:binli.sleep()
6、类:
静态的属性 属性
动态的行为 方法
饰符:属性类型 属性名 = 属性值!
5、对象的创建和使用
必须使用new关键字创造对象,构造器 Person binli = new Person();
对象的属性: binli.name
对象的方法:binli.sleep()
6、类:
静态的属性 属性
动态的行为 方法
‘封装、继承、多态’