【代码笔记】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创建virtualenv虚拟环境
pip install virtualenv virtualenv env_py36_crawl env_py36_crawl\Scripts\activate deactivate pip free ...
- count failed: not master{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" } at src/mongo/shell/query.js:191在SECONDARY节点无法show dbs
count failed: not master{ "note" : "from execCommand", "ok" : 0, " ...
- php 大文件读取
当你需要处理一个5G的文件里面的数据时,你会怎么做,将文件里面的内容全部读取到一个数组里面去? 显然这种做法对小文件是没有问题的,但是对于大文件还是不行的 这时就需要用到 yield 了 ,注意这是 ...
- TFS 30177 错误
不知道什么原因,创建团队项目失败. 参考 下面链接成功解决,表示感谢. http://www.cnblogs.com/Wendy_Yu/archive/2012/07/26/TFS2010_T ...
- js Array属性和用法
//构造函数创建数组 var arr1=new Array(); //字面量的方式 var arr2=[]; 1.Array.isArray(对象)---->判断这个对象是不是数组 //判断对象 ...
- jquery 中 $('div','li')是什么意思?
Javascript 专业回答 2013-07-18 10:59 这个写法没有错误,而且那个人跟你说的也没错,是选择li里面所有div 前面几位都学艺不精,都说错了 要搞清楚$('div','l ...
- 我所理解的session_set_save_handler的执行顺序机制
默认的session handler启动顺序 <?php ini_set('session.gc_maxlifetime',10); ini_set('session.gc_probabilit ...
- [转] JQuery UI Tabs 动态添加页签,并跳转到新页签
[From] https://blog.csdn.net/zhangfeng2124/article/details/76672403 需求: 1.tabs默认只有一个页签,但是需要点击某按钮,动态添 ...
- android 无线调试 [无需数据线][无需root]
无线调试首要条件在同一网段,打开开发者模式 1,打开 5555 端口 使用数据线链接手机,在命令窗口执行:adb tcpip 5555 2,adb 链接手机调试 这时无需数据线了,在命令窗口执行:ad ...
- (转)Openldap相关精品文章
1.运维咖啡吧 https://mp.weixin.qq.com/s__biz=MzU5MDY1MzcyOQ==&mid=2247483754&idx=1&sn=9f20d45 ...