IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA学习第七天;构造函数 ;构造/局部代码块 this;继承 -> 正文阅读

[Java知识库]JAVA学习第七天;构造函数 ;构造/局部代码块 this;继承

构造方法

1是一个与类同名的方法,并且他没有返回值
2作用是完成对象创建或者初始化
3当类创建对象时,就会自动调用构造方法
4构造方法与普通方法一样可以重载;

形式

与类同名,且没有返回值,可以含参,也可以不含参

修饰符 构造方法名(与类名相同)[参数列表 ] { 代码 -------- }

构造方法如何记忆
1特点 方法名与类名相同 ,且没有返回值类型
2执行时机;创建对象时会立即执行
3默认会创建无参构造,但是如果创建了含参构造时,会自动覆盖默认的无参构造,需要手动添加

/*构造方法的练习/
public class exercis {
public static void main(String[] args) {
//用new为gods 创建对象时 每一次定义都会执行构造方法
gods g=new gods();
gods g1=new gods(“火神”);
gods g2=new gods();
}
}
//将"神王"抽象化定义为类
class gods{
//定义属性 也就是成员变量,不是局部变量
String firecgod;
String watergod;
String segod;

  public  gods(){
      System.out.println("我是一个无参函数");
  }
  public  gods(String s){
      System.out.println("我是一个有参函数");
  }
  public gods(String firecgod, String watergod, String segod) {
      this.firecgod = firecgod;
      this.watergod = watergod;
      this.segod = segod;
      System.out.println("我是一个全参函数");
  }

}
在这里插入图片描述
如图可见 ,对照有参和全参,调用有参时,()内输入类型.和参数, 输出结果才会时有参,不然括号没有内容,会象全参一样默认为无参

构造代码块与局部代码块

格式 : { }
构造代码块的特点
1 位置在类里,方法外
2,作用:用于抽取构造方法中的共性代码
3执行时机:每次调用构造方法时都会提前调用构造代码块
4注意事项:构造代码块优先于构造方法加载

局部代码块
位置: 在方法里面的代码块
作用:通常用于控制变量的作用范围,除了括号会失效
注意事项:变量的作用范围越小越好,成员变量会存在线程安全的问题

在这里插入图片描述

在这里插入图片描述
如图可见,创建对象时,会触发构造函数,而每次出发构造函数,一定会触发构造代码块,并且构造代码块要优先于构造函数.

局部代码块
在这里插入图片描述
在这里插入图片描述

this

代表本类对象的一个引用对象
this.name=name 形式 //当方法内的局部变量和成员变量同名时,可以使用this 来指定成员变量

在这里插入图片描述
在这里插入图片描述

,

this练习之构造方法间的调用

在有参中 this(); 可以调用无参
在无参中 this(类型;参数)可以调用无参
不要形成循环

创建对象的流程

person p =new person ()
1把person.class 加载进内存
2在栈内存中开辟空间 用来存放变量p
3在堆内存开辟空间,用来存放 new person 所生成的对象
4对象生成后,会生成一个唯一的地址值
5将地址值交给变量p
6以后可以用变量p来调用 new person的属性值和方法

继承

是面向对象最显著的一个特征
是从已有的类中派生出新的类,新的类会继承以有类的属性和行为,并扩展新的能力
新类可以自定义增加新的数据和行为,且可以使用父类的功能,但不能选择性的继承父类(超类,基类)
这种继承方式可以节省开发效率,降低开发费用

继承的特点

1,使用extends 关键字来表示继承关系
2相当于把子类把父类的功能复制了一份
3java 只支持单继承
4继承可以传递 (爷爷-爸爸-儿子)
5父类的私有资源(private)修饰过的,不能被子类继承
6多用于功能的修改,子类可以在拥有父亲属性和行为的同时,在进行扩展

/*构造方法的练习/
public class exercis {
public static void main(String[] args) {
Elephant e=new Elephant();
Tiger t =new Tiger();
Dog d =new Dog();
e.Power(“大象”);
t.Power(“老虎”);
d.Power(“修勾”);
t.god(“啸天虎”);
d.gods(10000,“啸天神虎”);
}
}
//定义爷爷类
class Elephant{
String weight;
public void Power(String b){
System.out.println(b+“说他的力量是最强的”);
}

}
//定义儿子类
class Tiger extends Elephant {
private String b = “其实我是虎王”;//私有属性 子类 "dog"用不了,访问不到

  public void god(String a) {
    System.out.println("我是" + a + "大象跟我装什么呢.");
  }

}
//定义孙子类
class Dog extends Tiger {
public void gods(int c,String a) {
//可以使用父类的所有的非私有资源,而且私有资源不能被限制访问到
System.out.println(“我差不多是”+c+“个”+a+“的加起来在呈1000的总成吧”);
}
}
//定义父亲类
class tight{
int sum=1
}

//定义孙子类
class Dog extends Tiger {
//定义子类的成员变量
int sum=10;
public void gods( ) {
int sum=100;
System.out.println(sum);//结果为100
System.out.println(this.sum);//结果为10
System.out.println(super.sum);//结果为1

super之继承中构造方法的使用

本类用于测试继承中构造方法的使用

  • 1.子类在创建对象时,默认会先调用父类的构造方法
  • 2.原因是子类构造函数中的第一行默认存在super();–表示调用父类的无参构造
  • 3.当父类没有无参构造时,可以通过super(参数)调用父类的其他含参构造
  • 子类必须调用一个父类的构造函数,不管是无参还是含参,选一个即可
  • 4.构造方法不可以被继承!因为语法的原因:要求构造方法的名字必须是本类类名
  • 不能在子类中出现一个父类名字的构造方法
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 11:31:13  更:2021-12-09 11:32:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:54:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码