一、面向对象概念:
众所周知Java是完全面向对象的高级语言,个人观点在Java中一切皆对象,万物皆类型。
1、对象:
就是现实中的客观存在事物都是对象,也就是常说的万物皆对象。
2、面向对象:
就是用代码去高度模拟现实中的某种事物,这个过程就是面向对象。
二、类和对象:
1、类:
类是对现实生活中一类具有相同属性和行为的事物的抽象,类是对象的数据类型。
简单来说:类就是对现实事物的一种描述。
2、类的主要成分:
(1)成员属性:用来描述事物的特征,比如手机的颜色,尺寸,价格,品牌等。
(2)成员方法:指事物所拥有的行为,比如手机可以打电话,发短信等。
(3)构造器:类中特殊的方法,主要作用是用来创建对象。
|— 格式:
权限修饰符 类名(有参/无参){}
|— 无参构造器:
用来创建对象,但不给成员属性赋值。
|— 有参构造器:
用来创建对象的同时,给成员属性赋值。
|— 注意事项:
如果没有手写任何构造器,JVM会自动提供无参构造。
如果写了有参构造器,JVM就不会提供无参构造器。
建议:自己定义有参和无参构造器。
(4)代码块:定义在大括号 “{}”中的代码,就是代码块。
|— 静态代码块:
a、格式:
static{
静态资源初始化代码
}
b、作用:初始化静态资源。
|— 实例代码块:
a、格式:
{
实例资源初始化代码
}
b、作用:初始化实例资源。
|— 静态:
使用static关键字修饰的成员属性/方法/代码块,称为静态成员属性,静态成员方法,静态代码块。
|— 实例:
没有使用static关键字修饰的成员属性/方法/代码快,称为实例成员变量,实例成员方法,实例代码块。
|— 区别:
static修饰的成员属性/方法/代码块,属于类,随着类的加载而加载
没有使用static修饰的成员属性/方法/代码块,属于对象,随着对象的加载而加载
|— 访问规则:
静态无法资源无法访问实例资源,而实例资源可以访问静态资源。
因为类比对象先加载,对象又是类的实例。
(5)内部类:在类里面还定义一个类,类里面的那个类就是内部类
3、简单类的定义
类的命名:
规则:不能是关键字,不能以数字开头,在一个Java文件中,只能有一个 public 修饰的类,在同一包下不能出现同名的类名。
规范:每个单词的首字母大写,其他字母小写。
权限修饰符 class 类名{
//成员属性
权限修饰符 变量1的数据类型 变量1;
权限修饰符 变量2的数据类型 变量2;
... ...
权限修饰符 变量n的数据类型 变量n;
//成员方法
方法1;
方法2;
... ...
方法n;
}
例如:创建一个手机类
类名:
手机(Phone)
成员变量:
品牌(brand)
价格(price)
颜色(color)
成员方法:
打电话(call)
发短信(sendMessage)
public class Phone{
//成员属性
private String brand;
//成员属性
private double price;
//成员属性
private String color;
//成员方法
public void call(){
}
//成员方法
public void sendMessage(){
}
}
4、面向对象的三大特征
封装
继承
多态
5、对象
类是对现实生活中的事物的一种抽象,而对象就是具体存在的事物,也就是说对象是类的具体实例。
可以把类比作一个手机图纸,对象就是一部具体的手机。
6、对象的定义
类名 对象名 = new 类名(); //使用类的无参构造器创建这个类的对象
类名 对象名 = new 类名(参数1,2); //使用类的有参构造器创建这个类的对象
7、成员属性和行为的使用
实例成员属性/方法
先创建类的对象,然后使用对象名.成员属性名/成员方法名,但是要注意下权限修饰符。
静态成员属性/方法
直接使用类名.方法/成员属性名,一般使用静态资源会使用public 修饰(公开的,任何地方都可以访问)。