栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

类与对象以及构造器

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

类与对象以及构造器

类的定义

//例如:"CourseNumber"的类:标示课号。
class CourseNumber{
  String number;
  String coursename;
  void showInfo(){
    System.out.println("课号:"+number+",课程名称:"+coursename);
  }
}
//学生类
class Student{
  String number;
  String name;
  //构造方法
  Student(String num,String stuname){
    this.number = number;
    this.name = stuname;
  }
  //构造方法
  String selectCourse(CourseNumber num){
    String s = name + "您好,您选修的课程信息为:"+num.shouInfo();
    return s;
  }
}

插入知识点——

数据成员:一个具有特特定数据类型、处于类内部的一个变量,又称为成员变量。

数据类型可以为任何合法的数据类型,例如简单的数据类型、数组类型、类类型、接口类型。

编程风格建议:

1.一个成员变量占据一行。

2.变量名最好能见名知意。

3.首字母小写,多单词构成第二单词开始首字母大写。

  1. 类的成员:方法成员或者数据成员都可以加static修饰符。

  2. 对象的成员:没有加static修饰的成员。

  3. 类的成员和对象的成员都是类体中的成员。

注意:

加了static的变量,访问这种类变量的标准格式可以用:类名.类的成员名,或者对象变量名.类的成员名(不过不推荐后者)。而对象的数据成员,则通过对象变量名.类的成员名访问。

一般情况下,每个对象用自己的成员变量,他们是独立的,但有些情况下,当多个对象要共享同一个成员时,我们在这个成员前用static修饰使之成为类变量。

举个例子:

//每当新建一个DemoClass对象时,该变量自身加1,从而实现了对创建成功的对象计数功能。
class DmeoClass{
  static int instanceNum = 0; 
  //构造器,我们下一节讨论
  DemoClass(){
    DemoClass.instanceNum++;
  }
}
  • 类,是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物。

    • 动物、植物、手机、电脑…
    • Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为。
  • 对象,是抽象概念的具体实例。

    • 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。
    • 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念。

    我们可以将这些思想转换为代码实现!

创建与初始化对象

定义了一个类后,相当于创建了一个新的数据类型。创建对象,也就是声明新的数据类型变量,并为这种新的数据类型变量分配内存空间的过程。分配空间后,这个类的实例或者说是对象就创建好了。

例如:

//梯形类
class Trapezoid{
  double above;
  double bottom;
  double height;
//构造方法,用于初始化数据成员的值
  Trapezoid(double a,double b,double h){
    above = a;
    bottom = b;
    height = h;
  }
//普通方法:用于计算梯形的面积
  double computeArea(){
    return (above+bottom)*height/2;
  } 
}
//主类:
public class Test{
  public class void main(String[] args){
    Trapezoid t = new Trapezoid(4.5,9,2);//1.声明一个变量名为t,类类型Trapezoid;2.使用new运算符创建一个Trapezoid实例,对t进行初始化;3.t就指向了这个新建的Trapezoid实例(或者对象),从此就可以通过t调用它的实例(或者对象)方法了
    System.out.println(t.computeArea);
  }
}
  • 使用new关键字创建对象,对象创建后,对象对应的变量名就是对象的“引用”,是对象的一个“别名”。
  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用。
  • 类中的构造器也称为构造方法,是在进行创建对象的时候必须要调用的。 并且构造器有以下两个特点:
    • 1.必须和类的名字相同
    • 2.必须没有返回类型,也不能写void
  • 构造器必须要掌握!!!
构造器详解

构造方法(也就是构造器)是类中的一种特殊的方法,当程序用类创建对象时,会自动调用它。Java语言规范里叫Constructor,我们翻译为构造方法,实际上还是觉得构造器比较好一点,所谓的构造器,严格意义上来说不算是一个真正的方法,也就没有所谓的返回值。

此外,类中如果没有显式定义构造器,编译系统也会自动地给我们提供一个默认的构造器(这个系统提供的构造器,是没有带参数的,也没有方法体),而如果我们显式的定义了一个有参构造,则这个无参构造就必须显式定义!!

package com.oop.Test02;

public class Person {
    //一个类即使什么都不写,它也会存在一个方法
    String name;
    //1.使用new关键字(本质是在调用构造器),类中必须要有构造器
    //2.用来初始化对象值
    public Person(){
    }
    //有参构造:一旦定义了有参构造,无参构造就必须显式定义
    public Person(String name){
        this.name = name;
    }
}

穿插一点继承里面的东西——(后面会讲)

在继承里,子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。

如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。

如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器。

创建对象内存分析

在此,我们以图形的形式展示!

简单小结类与对象
        
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/884482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号