ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【Java常识】1.0 Java三大特性之一——类的继承(构造器)

2022-02-24 21:33:44  阅读:171  来源: 互联网

标签:1.0 name tea void Teacher Java public 三大


1.0 转移下平台,以前写的东西,最近把他们都搬到简书上来,以后就在简书上写东西了。
2.0 在Java中,创建对象的格式为:
类名 对象名 = new 类名();
如:

JFrame jf = new JFrame();
一个对象被创建出来时,经常要先做一些事这个对象才能正常使用,也可以说是准备工作,比如给这个对象赋些初始值,或者先运行一些别的方法。这时候就需要一个“构造器”用于:

    构造对象
    初始化属性
    这样,把那些在创建时要做的事写在构造方法里,每次创建就会被执行一遍。

我们常见的一种Java格式:

    public 返回类型 方法名(参数){ }

如:

public void study(){}
这在Java中称为“方法”。
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。

3.0 Java中“构造器”,在C语言中一般称之为“构造函数/构造方法”。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】
其定义格式:

    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(); ”操作时,调用一次构造函数。对于新手小白想更轻松的学好Java提升,Java架构,web开发、大数据,数据分析,人工智能等技术,这里给大家分享系统教学资源,扩列下我尉(同英):CGMX9880 【教程/工具/方法/解疑】
Teacher tea = new Teacher(“李四”);
上面可改写为:

Teacher tea;
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学生所有的公共的,大学生都具备。

标签:1.0,name,tea,void,Teacher,Java,public,三大
来源: https://blog.csdn.net/MC_Kitty/article/details/123121504

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有