Java基础1:面向对象和类说明

154 阅读5分钟

面向对象思想概述

Java是一种面向对象的高级编程语言。
面向对象:是用代码去高度模拟现实世界的事物,从而让软件为任务处理业务,为人类服务。
高级语言:代码看起来很像人类的自然语言。
面向对象最重要的两个概念:类和对象。
    类是相同事物共同特征的描述。类只是学术上的一个概念并非真实存在的,只能描述一类事物。
    对象:是真实存在的实例。  实例==对象。
    结论:有了类和对象就可以描述万千世界所有的事物。
         必须先有类才能有对象。
面向对象的三大特征:封装,继承,多态。

封装的哲学思维:合理隐藏,合理暴露。
封装最初的目的:提高代码的安全性和复用性,组件化。
封装的步骤:
    1.成员变量应该私有。用private修饰,只能在本类中直接访问。
    2.提供成套的gettersetter方法暴露成员变量的取值和赋值。

封装实际上已经成为了Java的代码规范,即使代码毫无意义我们还是要这样写。

定义类:

    格式:修饰符 class 类名{

    }
    注意:1.类名的首字母建议大写。满足驼峰模式。 StudentNameCode
         2.一个Java代码文件中可以定义多个类。但是按照规范还是建议一个Java文件定义一个类。
         3.一个Java代码文件中,只能有一个类是用public修饰的,
           而且public修饰的类名必须成为当前Java代码的文件名称。

类中的成分

类中的成分:有且仅有五大成分(五大金刚)
    修饰符 class 类名{
        // 1.成员变量(Field):  描述类或者对象的属性信息的。
        // 2.成员方法(Method): 描述类或者对象的行为信息的。
        // 3.构造器(Constructor): 初始化一个对象返回引用。
        // 4.代码块(后面学习的)
        // 5.内部类(后面学习的)
    }
    类中有且仅有这五种成分,否则代码报错!
    注意:只要不是这5大成分放在类下就会报错

构造器

格式:修饰符 类名(形参列表){

     }
作用:初始化类的一个对象返回。
构造器的分类:无参数构造器,有参数构造器。
构造器的注意点:一个类默认自带一个无参数构造器,但是如果写了有参数构造器那么
    默认的无参数构造器就消失了,此时如果还需要用无参数构造器就需要自己从新写一个。
构造器初始化对象的格式:
    类名 对象名称 = new 构造器;
    Student s = new Student();
无参数构造器的作用:初始化一个类的对象(使用对象的默认值初始化)返回。
有参数构造器的作用:初始化一个类的对象(可以在初始化对象的时候为对象赋值)返回。

this关键字

this关键字的作用:
    this代表了当前对象的引用。
    this关键字可以用在实例方法和构造器中。
    this用在方法中,谁调用这个方法,this就代表谁。
    this用在构造器,代表了构造器正在初始化的那个对象的引用。

案例


class Student{
     /// System.out.println("hello"); 不是五大成分,执行代码

    private String name ;

    public Student(){

    }
    public Student(String name){
        this.name = name ;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

static关键字

引入:
    我们之前定义了很多成员变量(name , age , sex)
    其实我们只写了一份,但是发现每个对象都可以用,就说明
    Java中这些成员变量或者方法是存在所属性的。
    有些是属于对象的,有些是属于类本身的。

Java是通过成员变量是否有static修饰来区分是类的还是属于对象的。

static == 静态 == 修饰的成员(方法和成员变量)属于类本身的。

按照有无static修饰,成员变量和方法可以分为:
    成员变量:
        (1)静态成员变量(类变量):
                 有static修饰的成员变量称为静态成员变量也叫类变量,属于类本身的,
                 直接用类名访问即可。

        (2)实例成员变量
                无static修饰的成员变量称为实例成员变量,属于类的每个对象的,
                必须用类的对象来访问。

    成员方法:
        (1)静态方法
                有static修饰的成员方法称为静态方法也叫类方法,属于类本身的,
                直接用类名访问即可。

        (2)实例方法
                无static修饰的成员方法称为实例方法,
                属于类的每个对象的,必须用类的对象来访问。
小结:
    成员变量有2种
         -- 有static修饰的属于类叫静态成员变量,与类一起加载一次,直接用类名调用即可。
         -- 无static修饰的属于类的每个对象的叫实例成员变量,
            与类的对象一起加载,对象有多少个,实例成员变量就加载多少份。必须用类的对象调用。

    成员方法有2种:
         -- 有static修饰的属于类叫静态方法,直接用类名调用即可。
         -- 无static修饰的属于类的每个对象的叫实例方法,必须用类的对象调用。

成员变量的分类和访问

按照有无static修饰成员变量分为:
    (1)静态成员变量:有static修饰,属于类本身与类一起加载一次,直接用类名访问即可。
    (2)实例成员变量:无static修饰,属于类的每个对象的,必须先创建对象,再用对象来访问。

成员变量的访问语法:
     静态成员变量访问:
          类名.静态成员变量。
          对象.静态成员变量。(不推荐)
     实例成员变量的访问:
          对象.实例成员变量。

小结:
    静态成员变量有static修饰,属于类本身,与类加载一次,因为只有一份所以可以被类和类的对象共享访问。
        注意:不建议用对象访问静态成员变量,静态成员变量直接用类名访问即可!!!

    实例成员变量,无static修饰,属于类的对象的,必须先创建对象,然后用对象来访问!