首页 > 其他分享 >动手动脑课后实验2

动手动脑课后实验2

时间:2022-10-01 15:47:13浏览次数:76  
标签:语句 静态 子类 动脑 System 动手 课后 println 父类

一般初始化:
1.没有继承

静态变量、静态初始化块 --> 变量、变量初始化块–>构造方法

2.有继承的情况

父类静态变量、父类静态初始化块–>子类静态变量、子类静态初始化块–>父类变量初始化、父类变量初始化块–>父类构造方法–>子类变量初始化、子类变量初始化块–>子类构造方法–>调用的其他非静态的方法们

静态的先于非静态执行
普通示例:
定义父类Animal :
public class Animal {

static int num1 = 1;
//静态语句块
static {
System.out.println("父类静态语句块1"+",num1值:"+num1);
}
//非静态语句块
{
System.out.println("父类非静态语句块1"+",num1值:"+num1+",num2值:"+num2);
}

//静态语句块
static {
num1 = 3;
System.out.println("父类静态语句块3"+",num1值:"+num1);
}

//非静态语句块
{
System.out.println("父类非静态语句块2"+",num1值:"+num1+",num2值:"+num2);
}
static int num2 = 2;
//静态语句块
static {
System.out.println("父类静态语句块2"+",num1值:"+num1+",num2值:"+num2);
}

//非静态方法
public void notStaticMethod() {
System.out.println("父类非静态方法1");
}

//静态方法
public static void staticMethod() {
System.out.println("父类静态方法1");
}

//无参构造函数
public Animal() {
System.out.println("父类构造函数");
}


//一般静态方法
public static void animalStaticTest(){
System.out.println("父类一般静态方法");
}

//一般非静态方法
public void animalTest(){
System.out.println("父类一般非静态方法");
}

//一般非静态方法
public void animalTest2(){
System.out.println("父类一般非静态方法2");
}
}


定义子类dog:
public class Dog extends Animal {

public static void main(String args[]) {

Animal dog = new Dog();
dog.animalTest();
dog.animalTest2();

}
//一般非静态方法
@Override
public void animalTest2(){
System.out.println("子类一般非静态方法2(重写了)");
}

//静态语句块
static {
System.out.println("子类静态语句块1");
}
//非静态语句块
{
System.out.println("子类非静态语句块2");
}

//静态语句块
static {
System.out.println("子类静态语句块3");
}

 

//非静态语句块
{
System.out.println("子类非静态语句块1");
}

 

//非静态方法
public void dogTest() {
System.out.println("子类非静态方法1");
}

//静态语句块
static {
System.out.println("子类静态语句块2");
}
//静态方法
public static void dogStaticTest() {
System.out.println("子类静态方法");
return;
}

//构造函数
public Dog() {
System.out.println("子类构造函数");
}


}


运行结果:
父类静态语句块1,num1值:1
父类静态语句块3,num1值:3
父类静态语句块2,num1值:3,num2值:2
子类静态语句块1
子类静态语句块3
子类静态语句块2
父类非静态语句块1,num1值:3,num2值:2
父类非静态语句块2,num1值:3,num2值:2
父类构造函数
子类非静态语句块2
子类非静态语句块1
子类构造函数
父类一般非静态方法
子类一般非静态方法2(重写了)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
增加内部类后,初始化
定义父类Animal :
Animal 中有内部类AnimalInner

public class Animal {

static int num1 = 1;
//静态语句块
static {
System.out.println("父类静态语句块1"+",num1值:"+num1);
}
//非静态语句块
{
System.out.println("父类非静态语句块1"+",num1值:"+num1+",num2值:"+num2);
}

//静态语句块
static {
num1 = 3;
System.out.println("父类静态语句块3"+",num1值:"+num1);
}

//非静态语句块
{
System.out.println("父类非静态语句块2"+",num1值:"+num1+",num2值:"+num2);
}
static int num2 = 2;
//静态语句块
static {
System.out.println("父类静态语句块2"+",num1值:"+num1+",num2值:"+num2);
}

//非静态方法
public void notStaticMethod() {
System.out.println("父类非静态方法1");
}

//静态方法
public static void staticMethod() {
System.out.println("父类静态方法1");
}

//无参构造函数
public Animal() {
System.out.println("父类构造函数");
}


//一般静态方法
public static void animalStaticTest(){
System.out.println("父类一般静态方法");
}

//一般非静态方法
public void animalTest(){
System.out.println("父类一般非静态方法");
}

//一般非静态方法
public void animalTest2(){
System.out.println("父类一般非静态方法2");
}


protected class AnimalInner {
public AnimalInner() {
System.out.println("父类构造器-内部类");
}

public void animalInnerTest() {
System.out.println("父类一般非静态方法-内部类");
}
///非静态语句块
{
System.out.println("父类非静态语句块5-内部类"+",num1值:"+num1+",num2值:"+num2);
}

}

private AnimalInner y = new Animal.AnimalInner();
public void insertYolk(AnimalInner yy) {
y = yy;
}
public void g() {
y.animalInnerTest();
}
}

定义子类cat:
Cat中的内部类CatInner继承Animal.AnimalInner

public class Cat extends Animal {

public static void main(String args[]) {

Animal cat = new Cat();
cat.animalTest();
cat.animalTest2();

}

protected class CatInner extends Animal.AnimalInner{
public CatInner() {
System.out.println("子类构造器-内部类");
}

@Override
public void animalInnerTest() {
System.out.println("子类一般非静态方法-内部类(重写了)");
}
///非静态语句块
{
System.out.println("子类非静态语句块5-内部类"+",num1值:"+num1+",num2值:"+num2);
}
}

//一般非静态方法
@Override
public void animalTest2(){
System.out.println("子类一般非静态方法2(重写了)");
}

//静态语句块
static {
System.out.println("子类静态语句块1");
}
//非静态语句块
{
System.out.println("子类非静态语句块2");
}

//静态语句块
static {
System.out.println("子类静态语句块3");
}

 

//非静态语句块
{
System.out.println("子类非静态语句块1");

}

 

//非静态方法
public void dogTest() {
System.out.println("子类非静态方法1");
}

//静态语句块
static {
System.out.println("子类静态语句块2");
}
//静态方法
public static void dogStaticTest() {
System.out.println("子类静态方法");
return;
}

//构造函数
public Cat() {
System.out.println("子类构造函数");
insertYolk(new Cat.CatInner());
}

}

运行结果:
父类静态语句块1,num1值:1
父类静态语句块3,num1值:3
父类静态语句块2,num1值:3,num2值:2
子类静态语句块1
子类静态语句块3
子类静态语句块2
父类非静态语句块1,num1值:3,num2值:2
父类非静态语句块2,num1值:3,num2值:2
父类非静态语句块5-内部类,num1值:3,num2值:2
父类构造器-内部类
父类构造函数
子类非静态语句块2
子类非静态语句块1
子类构造函数
父类非静态语句块5-内部类,num1值:3,num2值:2
父类构造器-内部类
子类非静态语句块5-内部类,num1值:3,num2值:2
子类构造器-内部类
父类一般非静态方法
子类一般非静态方法2(重写了)

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back

标签:语句,静态,子类,动脑,System,动手,课后,println,父类
From: https://www.cnblogs.com/lmyy/p/16747277.html

相关文章

  • 第三讲 类与对象 课后总结
    类的定义定义了一组大体上相似的对象。一个类所包含的方法和数据描述一组对象的共同行为和属性。对象则是类的具体化,是类的实例。类通过派生可以有子类,同样也可以有父类......
  • 移动手机高资费套餐到底怎样才能更改为低资费套餐?
    前言最近,拖延好几年的我,终于下定决心去营业厅更改套手机套餐资费了。我的手机套餐是【4G飞享套餐】,88/月,通话分钟数有 400分钟,但流量却只有700M,你敢信! 其实我也纳......
  • 《概率机器人》课后习题 第4章
    importnumpyasnpimportmatplotlib.pyplotasplt第一题第1问HF状态预测先回顾一下要用到的离散贝叶斯滤波算法。\[\begin{aligned}1:\quad&\textbf{Algorithm......
  • Java第二讲动手动脑
    1.运行结果  上述代码方法名相同,但是数据类型不同,体现了Java重载的特点(1)方法名相同(2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。也体现了Java中,当函数名......
  • 信2105-3班张少阳第二章方法有关动手动脑问题的解决和报告
    在Java语言中,其主要模块分为:类、方法、包。而包可以理解为一个文件夹,里面存放着各种Java文件供我们使用。而我们的一切实际操作都是在方法中实现的,可以理解为类给了我们一......
  • 动手动脑:类方法的编写
     静态成员变量又称类变量,静态成员方法又称类方法,它们统称为静态成员或类成员。静态成员由static修饰,是属于整个类的,所有的对象共享这些静态成员。不需要创建任何对象,静态......
  • 动手动脑——纯随机数发生器
    线性同余方法(LCG)是一种产生伪随机数的方法。 其中A,B,M是产生器设定的常数。LCG的周期最大为M,但大部分情况都会少于M。要令LCG达到最大周期,应符合以下条件:1、B,M互......
  • java 动手动脑 方法重载
    如下代码://MethodOverload.java//UsingoverloadedmethodspackageHJssss;publicclasszhuce{ publicstaticvoidmain(String[]args){ System.out.printl......
  • 动手动脑随机数发生器与查看不同
    //随机生成1000个整数publicclassTest07{publicstaticvoidmain(String[]args){for(inti=0;i<1000;i++){intmin=2;//定义随机数的最小值......
  • 动手动脑随机数
      packagetest;importjava.util.Random;importjava.util.Scanner;publicclassheima{publicstaticvoidmain(String[]args){ Randomr=newRandom(S......