面向对象的四大或者三大特征:抽象(可选)、封装、继承、多态
对象
什么是对象?
具体存在的一个事物就是一个对象,万事万物,皆对象
特点:
无论两个事物有多么的相近或者相似,永远都是两个不同的对象
抽象
把同一类事物,它们共同的特征
(
属性
)
和行为
(
方法
)
进行抽取、归纳、总结。
封装
意义和目的:就是包装的意思,为了保证抽象出来数据的安全性
封装包括对属性和方法的封装,而且同一类事物要把它们的属性和方法封装到一起,这才是一个完整的 封装。
封装不是绝对的,如果需要访问封装起来的属性和方法,就必须通过指定的公共入口
(
方法、接口
)
。
抽象和封装都是概念性的,在程序中它们都需要代码的形式来体现,这就是类
(class)
类(Class)
类中存放的就是抽象出来的属性和方法。
类的定义方法
[访问修饰符] class 类名{
//属性
//方法
}
属性:就是变量,也称为属性
成员属性或者全局变量:就是在类中任何方法或者代码块外部定义的变量,整个类中都可以使用。
成员变量,都有默认值,会根据数据类型来决定。
整数类型的默认值是
0
浮点类型的默认值是
0.0
boolean
类型的默认值是:
false
char
类型的默认值是空格
所有引用类型的默认值都是
null
局部属性或者局部变量:就是在方法或者代码块内部定义的变量,只能在方法内部或者代码块内部
使用,而且局部变量必须要初始化了才能使用。
类是模板,可以通过类创建
N
个属于这个类的事物就是对象,基于这个类创建的对象,那么这个对象就
拥有类中定义的所有属性和方法
类是对对象的抽象,对象是类的实例化
语法:
类名 对象名=new 类名();
通过对象,调用属性和方法:
语法:
对象名.全局属性名、对象名.方法名(参数列表)
public class Demo1{
//成员属性、全局变量
int num;
double money;
String name;
boolean flag;
char c;
public static void main(String[]args){
//创建对象
Demo1 demo1=new Demo1();
demo1.num=100;
demo1.money=9.5;
demo1.flag=true;
demo1.c='z';
System.out.println(demo1.num);
System.out.println(demo1.money);
System.out.println(demo1.name);
System.out.println(demo1.flag);
System.out.println(demo1.c);
}
}
构造方法
创建类的对象时,实际上是通过构造方法来完成的
构造方法:
方法名和类名相同
没有void,也没有return
方法不能被static修饰
类名 对象名=new 构造方法(参数列表);
语法:
[访问修饰符] 类名(参数){
}
构造方法的分类
public class Demo2{
public Demo2(){
System.out.println("------无参数的构造方法------");
}
public Demo2(String name,int age){
System.out.println("------有参数的构造方法----- name="+name+", age="+age);
}
public Demo2(int a,int b){
System.out.println("------有参数的构造方法----- a="+a+", b="+b);
}
public static void main(String[]args){
Demo2 demo2=new Demo2("zhangsan",20);
}
}
当一个类中,不存在任何形式的构造方法时,那么
JVM
会提供一个默认的无参数的构造方法。
构造方法分为:
无参数的构造方法
隐式无参数的构造方法
显示无参数的构造方法
有参数的构造方法,在调用时,需要传递数据,而且数据要和构造方法中参数的类型,个数,
顺序必须完全匹配。
构造方法中的参数,有被称为形式参数
(
形参
)
,在调用这个构造方法时,传递的数据称为实际参数
(
实参
)
在一个类中,可以同时拥有多个构造方法,只要构造方法之间的参数列表不同即可
方法
方法:就是完成同一功能的代码块。
定义语法
[访问修饰符] 返回值类型 方法名(参数列表){
//返回值
return 返回值;
}
无返回值无参数的方法
[访问修饰符] void 方法名(){
}
说明: void 表示当前方法不会返回数据给调用方
有返回值无参数的方法
[访问修饰符] 返回值类型 方法名(){
//代码
//返回值
return 值;
}
说明:返回值类型由返回值来决定的
带有返回值的方法的最后一句代码,一定是:return 返回值; 而且一次只能返回一个值。
无返回值有参数的方法
[访问修饰符] void 方法名(数据类型 参数1,数据类型 参数2,...){
}说明:方法中的参数可以有多个,参数之间使用逗号分隔。
方法中的参数也称为形式参数(形参)
调用有参数的方法时,传递的数据称为实际参数(实参),在传递数据时,必须和目标方法中参数 的个数,类型,顺序完全一致
有返回值有参数的方法
[访问修饰符] 返回值类型 方法名(参数列表){
//最后一句代码
return 返回值;
}