一、面向对象
1.面向对象是在程序中使用对象来映射现实中的事物,对象的关系来描述事物之间的联系。
2.面向对象的特点:
封装性:封装是将类的某些信息隐藏在类内部,不让外部程序去访问,需要通过这个类提供的方法来实现对隐藏信息的操作和访问。封装也是面向对象的核心思想,把类的属性和行为封装起来,不给外界知道具体的细节。
继承性:继承是类与类的一种关系,而不是对象在继承。子类从父类继承,子类中就拥有父类中定义的所有成员,只是类的继承,我们创建对象,对象与对象是毫无关系的。满足继承是一种”is a”关系,凡是满足”is a”关系的类就可以拥有继承的关系,当A类是1个B类的时候,那么A类就可以从B类继承,例如“猫”继承“动物”,动物类是猫类的父类或基类,猫类是动物类的子类或派生类。
多态性:多态就是对象的多种形态。在程序中可以出现重名现象,它指在一个类中定义的方法和属性被其他类继承,它们就有不同的数据类型或表现出不同的行为,使得同一个属性和方法在不同类有不同的意义。
二、类的定义
1.什么是类?
物以类聚,人以群分。类是对一群具有相同特征或行为的事物的1个统称。是抽象的也不能直接使用。如果非要使用类的话呢?只能去找这一类事物中的一个具体存在,然后使用这个具体存在。
2.类中可以定义成员变量和成员方法,其中成员变量用来描述对象的特征,也叫做属性。成员方法用来描述对象的行为,称作方法。
3.如何定义一个类
- class Person{
- int age;//定义int类型变量age
- //定义speak()方法
- void speak(){
- System.out.print("我今年"+age+"岁");
- }
- }
首先是定义了一个Person类,Person是类名,age是成员变量,speak()成员方法。在成员方法可以访问成员变量的age。
4.定义在类中的变量是成员变量,定义在方法中的变量局部变量。假设在某一个方法中定义局部变量跟成员变量的名是一样的,这时方法访问的是局部变量而不是成员变量。
例如:
- class Person{
- int age=3;//成员变量
- //定义speak()方法
- void speak(){
- int age=10;//局部变量
- System.out.print("我今年"+age+"岁");
- }
- }
- public class p13 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Person p1=new Person();
- p1.speak();
- }
- }
输出的结果是:
- 我今年10岁
三、对象的创建和使用
1.什么是对象
对象是现实生活中的一个个具体存在.。看得见、摸的着。拿过来就可以直接使用。
2.创建对象的格式
- 类名 对象名称=new 类名();
例如:
- Person p=new Person();
上面代码中”new Person()”是创建Person类的一个实例对象,”Person p”是Person类的变量p。“=”表示Person对象在内存中的地址赋值给变量p。这个变量p就有了对象的引用。
3.创建对象后,可以通过对象的引用来访问对象的所有成员。
访问对象成员的格式
- 对象引用.对象成员
4.如何访问对象成员的案例
- class Person{
- int age;//成员变量
- //定义speak()方法
- void speak(){
- System.out.println("我叫张三,今年"+age+"岁");
- }
- }
- public class p13 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //创建两个Person的对象
- Person p1=new Person();//创建第一个Person对象
- p1.age=8;//age属性赋值
- p1.speak();//调用对象的方法
- Person p2=new Person();//创建第二个Person对象
- p2.speak();//调用对象的方法
- }
- }
输出的结果是:
- 我叫张三,今年8岁
- 我叫张三,今年0岁
四、总结
本文主要介绍了面向对象概念,面向对象的三个特点封装性、继承性、多态性。类的定义和创建对象与使用。详细的介绍了怎么去定义一个类,通过案例来理解怎么去定义的。对象的创建与使用介绍了使用的格式,通过创建对象后,可以通过对象的引用来访问对象的成员。希望大家通过本文的学习,对你有所帮助!
本文转载自微信公众号「Java进阶学习交流」,可以通过以下二维码关注。转载本文请联系Java进阶学习交流公众号。