Java对象和类

283 阅读4分钟

Java对象和类

什么是面向对象

  • 面向对象编程的本质是:以类的方式组织代码,以对象的性质封装数据。

  • 抽象:抽取类中元素需要的共同点。例如在存储公民信息的时候,我们只用关心他们的姓名,性别,家庭住址,出生日期。而不用关心他的相貌,身高,体重等。

  • 三大特性:

    1.封装(将代码中的数据封装起来,对外部提供接口)

    2.继承(子类继承父类的实例域和方法)

    3.多态(同一个行为具有多个不同表现形式或形态的能力)

什么是对象和类

  • 类:类是一种抽象的数据类型,它是对一类事物的整体描述或定义,但不能代表某一个具体的事物。

    比如动物,植物,电脑,手机

  • 对象:对象是抽象概念的具体实例(不是找个女朋友)。

    例如张三是人的一个的具体实例,张三的狗旺财是狗的一个具体实例

    对象是一个具体实例,类是抽象概念,类是对象的一个模板 Java中的对象

  • 现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。

  • 拿一个人来举例它的状态有:名字、性别、身高体重;行为有:吃饭、睡觉、上厕所

  • 对比现实对象和软件对象,它们之间十分相似。软件对象也有状态和行为。软件对象的状态就是属性,行为通过方法体现。

类的创建

  • 一个类中有成员变量,构造方法,方法。 成员变量反应类的状态、属性,方法标识类的行为能力、功能

  • 构建一个学生类

//student 类
public class Student {
    //属性
    String name;
    int age;

    //方法
    public static void say() {
        System.out.println("学生在说话!");

    }

public class Demo2 {
    public static void main(String[] args) {
     Student.say();
     }
  • 静态方法与非静态方法

    构造一个静态方法与非静态方法

package Demo;
//student 类
public class Student {
    //属性
    String name;
    int age;

    //静态方法
    public static void say() {
        System.out.println("外比巴卜!");

    }
    //非静态方法
    public void sayHello() {
       System.out.println(this.name+":老师好!");
    }
    public void Age(){
        System.out.println(this.name+"的年龄是:"+this.age+"岁");
    }

}

静态方法与非静态方法的区别

  • 静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用
  • 静态方法只能访问静态成员和方法,非静态方法都可以访问
  • 静态成员是在 第一次使用时进行初始化。非静态的成员是在创建对象的时候。

声明对象

  • 要获得一个类的对象需要两步: 1.对象的声明。 类型 对象名;
  • 为对象分配内存。 对象名=new 构造方法名;

例如:Person jack=new Person();

方法的调用

  • 静态方法不需要类实例化就可以调用,反之非静态方法需要实例化后才能调用;
public class Demo2 {
    public static void main(String[] args) {
       //1.调用静态方法
        Student.say();
        //2.调用非静态方法
        //实例化这个类new(创建对象)
        //对象类型 对象名=对象值
       Student zhangsan =new Student();
       zhangsan.name="张三";
       //zhangsan.age=18;
       zhangsan.sayHello();
       zhangsan.Age();


    }
}

构造方法 -

  • 构造方法没有返回类型,也不能写void
  • 一个类即使什么都不写,也会存在一个默认的构造方法

方法的重载

  • 重载就是在一个类中,有相同的函数名称,但形参不同的函数。 方法重载的规则:
  • 方法名称必须相同。
  • 参数列表必须不同(个数不同,或类型不同、参数排列顺序不同)

小结

  • 1.类与对象:类是一个模板,对象是一个具体的实例
  • 2.方法:定义、调用。
  • 3.属性:成员变量 修饰符 属性类型 属性名=属性值
  • 5.对象的创建和使用
-必须使用new关键词创建对象
 Person zhangsan = new Person()
-对象的属性
 zhangsan.name;
 -对象的方法
 zhangsan.say();
 
  • 6.类
   静态的属性  属性
   懂爱的行为  方法

Q&A

1.简述一下面向对象的特征,并举例说明你对面向对象的理解?

2.对象和类之间的关系是什么?