【代码笔记】Java基础:类的继承(构造器)

  • 在Java中,创建对象的格式为:

类名 对象名 = new 类名();

如:

1 JFrame jf = new JFrame();
  • 一个对象被创建出来时,经常要先做一些事这个对象才能正常使用,也可以说是准备工作,比如给这个对象赋些初始值,或者先运行一些别的方法。这时候就需要一个“构造器”用于:
    1. 构造对象
    2. 初始化属性
      这样,把那些在创建时要做的事写在构造方法里,每次创建就会被执行一遍。
  • 我们常见的一种Java格式:
    • public 返回类型 方法名(参数){ }
    • 如:
1 public void study(){}      
  • 这在Java中称为“方法”。
  • 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。
  • Java中“构造器”,在C语言中一般称之为“构造函数/构造方法”。
  • 其定义格式:
    • public 类名 () { }
  • 文件名:Teacher.java
  •  1 public class Teacher {
     2     String name;
     3
     4     //构造方法,构造对象的时候执行
     5     public Teacher(){
     6         System.out.println("执行了老师类的构造方法");
     7     }
     8     public Teacher(String n){
     9         name = n;
    10     }
    11
    12     //方法重载
    13     public void teach(int a){
    14         System.out.println("执行教学方法1");
    15     }
    16     public void teach(){
    17         System.out.println("执行教学方法2");
    18     }
    19     public void teach(String n){
    20         System.out.println("执行教学方法3");
    21     }
    22     public void teach(String n,int a){
    23         System.out.println("执行教学方法4");
    24     }
    25     public void teach(int a,String n){
    26         System.out.println("执行教学方法2");
    27     }
    28 }
  • 文件名:Test.java
  •  1 import javax.swing.JFrame;
     2
     3 public class Test {
     4     public static void main(String[] args) {
     5         //创建对象,调用构造方法
     6         Teacher tea = new Teacher("李四");
     7
     8
     9         Teacher tea1 = new Teacher();
    10         tea.name = "张三";
    11         tea1.name = "李四";
    12         tea = tea1;
    13         tea1.name = "王五";
    14
    15         System.out.println(tea.name);
    16         System.out.println(tea1.name);
    17
    18     }
    19 }
  • 虽然是“public 类名 (){ }”的形式存在构造器中,不像创建对象有返回值类型(比如“void”),但其将返回一个内存地址。
  • 在内存中,存储数据分为栈和堆。
  • 栈存储变量,堆存储对象,其都有相应的内存地址。在执行构造器时,对数据进行初始化属性,相当于把对象的各项数据(所有的)存储到内存单元中,变量(如“tea”、“张三”)存到栈中,对象(如“name”、“Teach”)存到堆中。
  • 上文“Test.java”的运行结果是输出:tea存入栈,name“张三”存入堆,都有自己的内存地址。
    • “王五
    • 王五”
  • 执行 “tea = tea1”时,相当于把tea1的内存地址复制给tea,tea指向的内容将全部变成tea所指向的内容,所以运行结果是两个“王五”。
  • 在“Test.java”中,作为主函数  调用构造方法 “Tecaher”(文件:Teacher.java),在执行一次“ new Teacher();”操作时,调用一次构造函数。
  • 1 Teacher tea = new Teacher("李四");
  • 上面可改写为:
    1 Teacher tea;
    2 tea = new Teacher("李四");

    此处构造器“Teacher”只调用一次,及“执行了老师类的构造方法”只打印一次。

  • 文件名:Student.java

    1 public class Student {
    2     public String name;
    3     public int age;
    4
    5     public void study(){
    6         System.out.println("学生学习");
    7     }
    8
    9 }
  • 文件名:UnStudent.java

    1 package com.huaxin.lesson0304;
    2
    3 public class UnStudent extends Student{
    4
    5 }
  • 如上,称为类的继承。
  • 定义:子类继承父类的所有的非私有属性和方法
  • 格式 : public class 子类名  extends  父类名{ }
  • “UnStudent.java”大学生继承“Student.java”学生的非私有性属性。
  • 即凡是Student学生所有的公共的,大学生都具备。
时间: 03-04

【代码笔记】Java基础:类的继承(构造器)的相关文章

JAVA基础-类的继承

父类: public class ManKind { int sex; int salary; //判断性别 void manOrWoman(){ if(sex == 1){ System.out.println("man"); }else if(sex == 0){ System.out.println("woman"); } } //通过收入判断是否有工作 void employeed(){ if(salary == 0){ System.out.println

Java:类与继承(隐藏和覆盖的问题)

盒子先生金金 Java:类与继承(隐藏和覆盖的问题) Java:类与继承 Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知识.首先,我们讲述一下与类的初始化相关的东西,然后再从几个方面阐述继承这一大特性.以下是本文的目录大纲: 一.你了解类吗? 二.你了解继承吗? 三.常见的面试笔试题 若有不正之处,请多多谅解并欢迎批评指正. 请尊重作者劳动成果

Java基础——封装、继承、多态

Java基础--封装.继承.多态 --小实例快速成长 抽象: 1.目的:将复杂的东西简单化,将繁乱的内容有序化. 2.过程:对相同.相似的东西合而为一,对不同的内容进行归门别类. 3.结果:类.接口. 封装: 1.目的:化零为整,将零散的内容进行归属,进行权限控制. 2.过程:将某对象的属性.方法(功能)统一到其名下,并分别设置.适当的权限进行控制管理. 3.结果:对象,接口. 继承: 1.求大同存小异:在一个系列内,大部分都有的内容,就划归父类:子类将父类的内容继承过来,可以有自身的一些发展和

java基础之【继承--->多态】内存图

执行流程 1:Animal a = new Cat(); 1.1:在栈中创建区域,类型为Animal,变量名:a; 1.2:在堆中new Cat();占用一块区域.地址值:[0x3a4] 1.3:spuer()实例化父类Animal. 1.3.1:new Animal();占用一块区域,地址值:0x3ab; 1.3.2:引用着在方法区中初始化[Animal中的所有方法,该引用为:[0x754]]. 1.3.3:将Animal()引用赋给spuer();spuer引用着Animal(); 1.4:

第31节:Java基础-类与对象

前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载和构造方法的重载 方法的重载 在一个类中可以有多个方法具有相同的名字,但是这些方法的参数个数不同,或参数类型不同,即为方法的重载. class Demo{ // one void dashu(String name){ System.out.println(name); } // two void

Java基础学习笔记七 Java基础语法之继承和抽象类

继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工,程序中便可以描述为研发部员工和维护部员工继承自员工,同理,JavaEE工程师和Android工程师继承自研发部员工,而维网络维护工程师和硬件维护工程师继承自维护部员工.这些员工之间会形成一个继承体系,具体如下图所示. 在Java中,类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的新类被称

JAVA代码重用机制复用类之继承语法(附源码)

前言 继承是所有OOP语言和Java语言不可缺少的组成部分.当创建一个类时,总是在继承,因此,除非已明确指出要从其他类中继承,否则就是在隐式地从Java的标准根类Object进行继承. 组合的语法比较平实,但是继承使用的是一种特殊语法.在继承过程中,需要先声明"新类与旧类相似".这种声明是通过在类主体的左边花括号之前,书写后面紧随基类名称的关键字extends而实现的.当这么做时,会自动得到基类中所有的域和方法.例如: 示例源码 基类 package com.mufeng.thesev

(转)Java:类与继承

原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知识.首先,我们讲述一下与类的初始化相关的东西,然后再从几个方面阐述继承这一大特性. 一.你了解类吗? 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有p

Java:类与继承

对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知识.首先,我们讲述一下与类的初始化相关的东西,然后再从几个方面阐述继承这一大特性.以下是本文的目录大纲: 一.你了解类吗? 二.你了解继承吗? 三.常见的面试笔试题 若有不正之处,请多多谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/

java基础知识总结--继承和接口

什么是继承?什么是接口?他们之间的区别和联系是什么? 什么是继承? 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可.多个类称为子类,单独的那个类称之为父类,超类.或者是称为基类. 什么是接口? 接口在Java编程语言中是一个抽象类型,是抽象方法的集合,接口并不是类,编写接口的方法和类很相似,但是他们属于不同的概念,类描述对