zoukankan      html  css  js  c++  java
  • Java入门笔记 03-面向对象(上)

    介绍:Java是面向对象的程序设计语言,类是面向对象的重要内容,可以把类当成是一种自定义类型,可以使用类来定义变量,这种类型的变量统称为引用变量。也就是说,所有类都是引用类型。Java也支持面向对象的三大特征:封装、继承和多态,下面将逐一展开讲解以上内容。

    一、 类和对象:

      1. 类的定义:对一个类而言,有三个最常见的成员:构造器、成员变量和方法。类里各成员之间的定义顺序没有任何影响,各成员之间可以相互调用,但是需要指出的是:static修饰的成员不能访问非static修饰的成员,有static修饰的成员属于类本身,没有static修饰的成员属于该类的实例。如下是一个Person类的定义:

     1 public class Person {
     2     //成员变量(属性)
     3     String name;
     4     int age;
     5     
     6     //构造器
     7     public Person() {
     8         
     9     }
    10     
    11     public Person(String name, int age) {
    12         this.name = name;
    13         this.age = age;
    14     }
    15     
    16     //方法
    17     public void eat() {
    18         System.out.println("吃饭");
    19     }
    20     
    21     
    22     public void talk(String language) {
    23         System.out.println("说话" + language);
    24     }
    25 }

      2. 对象的产生和使用:创建对象的根本途径是构造器,通过new关键字来调用某个类的构造器即可创建这个类的实例。如:

    1 Person p1;
    2 p1 = new Person();
    3 //
    4 Person p2 = new Person();
    • static修饰的方法和成员变量,既可以通过类来调用,也可以通过实例来调用;
    • 非static修饰的方法和成员变量,只能通过实例来调用。

      3. 对象的this引用:this关键字总是指向调用该方法的对象,根据this出现位置的不同,this作为对象的默认引用有两种情形:

    • 构造器中引用该构造器正在初始化的对象
    • 在方法中引用调用该方法的对象

      需要注意的是,在static修饰的方法中不能使用this引用,原因在于:如果在static修饰的方法中使用this关键字,则这个关键字就无法指向合适的对象。

      另外,Java有一个让人极易“混淆”的语法,它允许使用对象来调用static修饰的成员变量、方法,但实际上这是不应该的。在使用Java编程时,不要使用对象去调用static修饰的成员,而是通过类来调用。

      如果确实需要在static方法中调用非static成员,则只能重新创建一个对象,通过对象来调用。

      必须使用this的情况:如果方法里有个局部变量和成员变量同名,但程序又需要在该方法中访问这个被覆盖的成员变量,则必须使用this前缀。

    二、 成员变量和局部变量:

      根据定义变量的位置不同,可以将变量分为两大类:成员变量和局部变量。

      1. 成员变量:是指在类里面定义的变量,成员变量无须显式初始化,成员变量包括:

    • 类变量(static修饰的成员变量)
    • 实例变量(非static修饰的成员变量)

      2. 局部变量:是指在方法里面定义的变量,除了形参之外,其余的都必须显式初始化,局部变量包括:

    • 形参
    • 方法局部变量
    • 代码块局部变量

     三、 方法详解:

      1. 形参个数可变的方法:在JDK 1.5以后,Java允许定义形参个数可变的参数,在最后一个形参的类型后增加三点(...),多个参数将被当成数组传入,因此一个方法中最多只能有一个长度可变的形参。

      2. 方法重载:如果同一个类中包含了两个及以上的方法同名,但是形参列表(包括形参顺序)不同,则称为方法重载。

    四、 深入构造器

      1. 构造器重载:同一个类里具有多个构造器,多个构造器的形参列表不同,即被称为构造器重载,可以使用this来调用另一个重载的构造器来初始化部分属性。

    【补充】

      匿名对象不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象。如:

    new Person().shout();

      使用情况

    • 如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
    • 我们经常将匿名对象作为实参传递给一个方法调用。
  • 相关阅读:
    将数字转换千分位分隔形式
    根据字符分割字符串的三种写法
    取出字符串中的汉字、字母或是数字
    生成n位随机字符串
    python中类的继承
    汇编语言与计算机体系结构
    DMA(direct memory access)直接内存访问
    数学归纳法证明时间复杂度
    具体名词的理解、单词的深意
    python的类和对象
  • 原文地址:https://www.cnblogs.com/dailymatters/p/12288050.html
Copyright © 2011-2022 走看看