【代码笔记】Java基础:类的继承(构造器)
- 在Java中,创建对象的格式为:
类名 对象名 = new 类名();
如:
1 JFrame jf = new JFrame();
- 一个对象被创建出来时,经常要先做一些事这个对象才能正常使用,也可以说是准备工作,比如给这个对象赋些初始值,或者先运行一些别的方法。这时候就需要一个“构造器”用于:
- 构造对象
- 初始化属性
这样,把那些在创建时要做的事写在构造方法里,每次创建就会被执行一遍。
- 我们常见的一种Java格式:
- public 返回类型 方法名(参数){ }
- 如:
public void study(){}
- 这在Java中称为“方法”。
- 所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。
- Java中“构造器”,在C语言中一般称之为“构造函数/构造方法”。
- 其定义格式:
- public 类名 () { }
- 文件名:Teacher.java
public class Teacher {
String name; //构造方法,构造对象的时候执行
public Teacher(){
System.out.println("执行了老师类的构造方法");
}
public Teacher(String n){
name = n;
} //方法重载
public void teach(int a){
System.out.println("执行教学方法1");
}
public void teach(){
System.out.println("执行教学方法2");
}
public void teach(String n){
System.out.println("执行教学方法3");
}
public void teach(String n,int a){
System.out.println("执行教学方法4");
}
public void teach(int a,String n){
System.out.println("执行教学方法2");
}
}- 文件名:Test.java
import javax.swing.JFrame; public class Test {
public static void main(String[] args) {
//创建对象,调用构造方法
Teacher tea = new Teacher("李四"); Teacher tea1 = new Teacher();
tea.name = "张三";
tea1.name = "李四";
tea = tea1;
tea1.name = "王五"; System.out.println(tea.name);
System.out.println(tea1.name); }
}- 虽然是以“public 类名 (){ } ”的形式存在构造器中,不像创建对象有返回值类型(比如“void”),但其将返回一个内存地址。
- 在内存中,存储数据分为栈和堆。
- 栈存储变量,堆存储对象,其都有相应的内存地址。在执行构造器时,对数据进行初始化属性,相当于把对象的各项数据(所有的)存储到内存单元中,变量(如“tea”、“张三” )存到栈中,对象(如“name”、“Teach” )存到堆中。
- 上文“Test.java”的运行结果是输出:tea存入栈,name“张三”存入堆,都有自己的内存地址。
- “王五
- 王五”
- 执行 “tea = tea1”时,相当于把tea1的内存地址复制给tea,tea指向的内容将全部变成tea所指向的内容,所以运行结果是两个“王五”。
- 在“Test.java”中,作为主函数 调用构造方法 “Tecaher”(文件:Teacher.java),在执行一次“ new Teacher(); ”操作时,调用一次构造函数。
Teacher tea = new Teacher("李四");上面可改写为:
Teacher tea;
tea = new Teacher("李四");此处构造器“Teacher ”只调用一次,及“执行了老师类的构造方法”只打印一次。
- 文件名:Student.java
public class Student {
public String name;
public int age; public void study(){
System.out.println("学生学习");
} } - 文件名:UnStudent.java
package com.huaxin.lesson0304; public class UnStudent extends Student{ } - 如上,称为类的继承。
- 定义:子类继承父类的所有的非私有属性和方法
- 格式 : public class 子类名 extends 父类名{ }
- “UnStudent.java”大学生继承“Student.java”学生的非私有性属性。
- 即凡是Student学生所有的公共的,大学生都具备。
【代码笔记】Java基础:类的继承(构造器)的更多相关文章
- Java:类与继承
Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不开类,只有存在类,才能体现面向对象编程的特点,今天我们就来了解一些类与继承的相关知 ...
- Java:类与继承(隐藏和覆盖的问题)
盒子先生金金 Java:类与继承(隐藏和覆盖的问题) Java:类与继承 Java:类与继承 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大特性都离不 ...
- 第31节:Java基础-类与对象
前言 Java基础-类与对象,方法的重载,构造方法的重载,static关键字,main()方法,this关键字,包,访问权限,类的继承,继承性,方法的重写,super变量. 方法的重载:成员方法的重载 ...
- Java基础学习笔记七 Java基础语法之继承和抽象类
继承 继承的概念 在现实生活中,继承一般指的是子女继承父辈的财产.在程序中,继承描述的是事物之间的所属关系,通过继承可以使多种事物之间形成一种关系体系. 例如公司中的研发部员工和维护部员工都属于员工, ...
- (转)Java:类与继承
原文地址: http://www.cnblogs.com/dolphin0520/p/3803432.html 对于面向对象的程序设计语言来说,类毫无疑问是其最重要的基础.抽象.封装.继承.多态这四大 ...
- java基础知识总结--继承和接口
什么是继承?什么是接口?他们之间的区别和联系是什么? 什么是继承? 继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能.多个类中存在相同属性和行 ...
- Java基础教程(18)--继承
一.继承的概念 继承是面向对象中一个非常重要的概念,使用继承可以从逻辑和层次上更好地组织代码,大大提高代码的复用性.在Java中,继承可以使得子类具有父类的属性和方法或者重新定义.追加属性和方法. ...
- Java基础-封装和继承
@ 目录 Java基础知识(封装和继承) 一. 封装 1.1 封装的目的 1.2 封装的好处 1.3 封装的步骤 1.4 封装的例子 1.5 小结 二. 继承 2.1 继承的介绍 2.2 生活中的继承 ...
- java基础---类和对象(4)
一. static关键字 使用static关键字修饰成员变量表示静态的含义,此时成员变量由对象层级提升为类层级,整个类共享一份静态成员变量,该成员变量随着类的加载准备就绪,与是否创建对象无关 使用st ...
- java基础---类和对象(3)
一.Object类 java.lang.Object类是Java语言中类层次结构的根类,也就是说任何一个类都是该类的直接或者间接子类 如果定义一个Java类时没有使用extends关键字声明其父类,则 ...
随机推荐
- python中xml解析
import xml.dom.minidom input_xml_string = '''<root><a>hello</a></root>'''#打开 ...
- P3615 如厕计划
$ \color{#0066ff}{ 题目描述 }$ 竞赛比完之后,水箱里充满水的选手们鱼贯而出.凡华中学的厕所规划的很糟,只有两个厕位,于是厕所门前排起了长长的队伍. 厕所有两个,一个是女生专用厕所 ...
- js 冒泡事件与解决冒泡事件
事件冒泡 :当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window . html代码: <div id="div1"> <div id= ...
- PAT天梯赛L3-015 球队食物链
读题可以知道是DFS,注意一点,题目说的是赢过,所以str[i][j]=‘W',那么g[i][j]=1,str[i][j]='L',g[j][i]=1 然后就常规搜索即可,还有一点就是剪枝,如果没有可 ...
- C语言学习总结(1)——结构体
一,什么是结构体 我们知道数组(Array),它是一组具有相同类型的数据的集合.但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号为整数,年龄 ...
- zip与unzip
- Adobe Fireworks CS5 | Adobe Dreamweaver CS5 | Adobe Photoshop CS5 Extended 绿色精简版最新下载地址
下载地址可能已经不能直接下载,可以用迅雷下载试试 Adobe Photoshop CS5 简体中文绿色版 下载地址:Adobe_Photoshop_CS5_Extended.7z 此绿色版特点:1. ...
- LOJ6503. 「雅礼集训 2018 Day4」Magic(容斥原理+NTT)
题目链接 https://loj.ac/problem/6503 题解 题中要求本质不同的序列数量,不太好搞.我们考虑给相同颜色的牌加上编号,这样所有牌都不相同.那么如果我们求出了答案,只需要将答案除 ...
- python 并发之多进程实现
一.multipricessing模块的介绍 python中的多线程无法利用多核优势,如果想要充分的使用多核CPU资源,在python中大部分情况下需要用多线程,python提供了multiproce ...
- SGU - 495 概率DP
题意:n个带礼物的盒子和m个人,每个人拿一个盒子并放回,如果里面有礼物就拿走(盒子还是留下),问m个人带走礼物的期望 #include<iostream> #include<algo ...