静态,构造块,方法调用

package com.gg.test;

public class Monkey {

static  {

System.out.println("我是静态块, 我是被第一个调用的, 优先级在所有的之前。 我被  类加载器加载的 ");

}

{

System.out.println("我是  构造块   ,我和类本身没关系, 我和对象有关系");

}

/***

* 静态块    掌握

*

* 构造块      了解

* 构造器      掌握

*

*/

// static  修饰的   变量   还是  方法    都 不再属于   对象本身了,  而是    属于  该数据类型的,   =》  类   全局,大家公用。就一份

//  类名.调用

static   String    food  =  "香蕉";

static   void   function(){

}

// 成员 一个对象单独一份, 相互之间 没有任何的关系。

String id;

String name;

String age;

String gender;

@Override

public String toString() {

return "Monkey [id=" + id + ", name=" + name + ", age=" + age

+ ", gender=" + gender + "]";

}

public Monkey(String id, String name, String age, String gender) {

super();

this.id = id;

this.name = name;

this.age = age;

this.gender = gender;

}

public Monkey() {

System.out.println("只要你new 了我,  我就被调用一次,  new几次, 我被调用几次");

}

// 说话 ,

public void say() {

System.out.println("大家好我的名字叫" + this.name);

}

// 猴子会自我介绍

public void desc() {

System.out.println("我今年" + age + "岁了");

}

// 猴子会算算术 俩数

public void artMath(int number1, int number2) {

System.out.println(number1 + "+" + number2 + "=" + (number1 + number2));

}

}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

package com.gg.test;

public class Test3 {

int radius;

int  high;

public Test3() {

super();

// TODO 自动生成的构造函数存根

}

public Test3(int radius, int high) {

super();

this.radius = radius;

this.high = high;

}

@Override

public String toString() {

return "Test3 [radius=" + radius + ", high=" + high + "]";

}

public  void result(){

System.out.println("结果等于"+this.radius*this.radius*3.14);

System.out.println("我是你大爷!!!");

}

public int getRadius() {

return radius;

}

public void setRadius(int radius) {

this.radius = radius;

}

public int getHigh() {

return high;

}

public void setHigh(int high) {

this.high = high;

}

}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

package com.gg.test;

public class demo3 {

public static  void main(String[] args) {

System.out.println("请输入圆柱体的高");

System.out.println("请输入圆柱体的半径");

Test3 g=new Test3();

g.radius=3;

g.high=2;

g.result();

Monkey m=new Monkey();

m.name="wangwu";

m.say();

}

}

原文地址:https://www.cnblogs.com/JachinMeng/p/9688796.html

时间: 2024-10-19 07:57:45

静态,构造块,方法调用的相关文章

1,普通代码块 2,构造块 3,静态代码块

1,普通代码块 package com.java1234.chap03.sec07; public class Demo1 { public static void main(String[] args){ int a=1; /**普通代码块(顺序执行) * */ { a=2; System.out.println("普通代码块"); } System.out.println("a="+a); } } 2,构造块 package com.java1234.chap0

JVM 方法调用之静态分派

分派(Dispatch)可能是静态也可能是动态的,根据分派依据的宗量数可分为单分派和多分派.这两种分派方式的两两组合就构成了静态单分派,静态多分派,动态单分派,动态多分派这4种组合.本章讲静态分派. 1.静态分派 所有依赖静态类型来定位方法执行版本的分派动作称为静态分派.静态分派的典型应用是方法重载.静态分派发生在编译阶段,因此确定静态分派的动作实际上不是由虚拟机来执行的. 那么什么是静态类型(static type)呢? 1 Super object = new Sub(); 像上面的语句,S

Java构造块,静态代码块,构造方法执行顺序

构造块:直接写在类中的代码块 静态代码垮:使用static关键字声明的代码块 静态代码块先于构造块,构造方法执行,而且只在类加载时候执行一次,后面在类实例化的时候会先执行构造块,而且每 执行实例化一个对象,就会执行一次构造块,执行完构造块会执行构造方法. public class ConstructorCodeTest { public static void main(String[] args) { Demo d1=new Demo(); Demo d2=new Demo(); Demo d

JVM学习笔记(二)--方法调用之静态分配和动态分配

本篇文章从JVM的角度来理解Java学习中经常提到的重载和重写. 方法调用:方法调用不等同于方法执行,在Java虚拟机中,方法调用仅仅是为了确定调用哪个版本的方法.方法调用分为解析调用和分派.解析调用一定是静态的,而分派可以是静态的,也可以是动态的.我们这里只介绍分派中的静态分配和动态分配. 静态分配:所有依赖静态类型来定位方法执行版本的分派动作称为静态分配. 下面看个例子,顺便来猜一下结果(面试中经常遇到): 1 class Human { 2 3 } 4 5 class Man extend

Jvm(65),方法调用----静态分派调用

我们先来看一下下面的例子: package demo.jvm.test8? public class Demo2 { /** 方法静态分派演示 * @author zzm */ static abstract class Human { } static class Man extends Human { } static class Woman extends Human { } public void sayHello(Human guy) { System.out.println("hel

(1) 类构造块,this(),static,单例模式串讲

类构造块 在类只用一对大括号包含的内容,构造所有的对象时都会执行的内容,如果某个类有好几个够赞函数,公共部分抽取出来,放到构造块中. 1 clas Boy 2 { 3 ... 4 { 5 syso("哭..."); 6 } 7 ... 8 } 主要作用: 一个类可能重载了很多的构造函数,这时不同的构造函数有些内容是公共的,这时需要把公共的内容分离出来省的每个构造函数厘里面都写一遍,这时就可以使用类构造块. this() 这时一种在内部调用自己的空构造函数的做法.注意构造函数之间的相互调

Angular 2 应用的 8个主要构造块

前面的话:最近空余时间在学 Angular 2,国庆节的时候看了官网的quickstart,还写了一篇文章,只是一个hello world demo.后面继续看了它的一个项目教程,刚开始还可以跟上,当后面就比较混乱了.的确,对于新手来讲,要了解一个框架还是比较麻烦的.所以停止项目,开始看看 angular 的整体框架是如何的,联系项目,分析下,慢慢来. 学习链接:中文官网 正文开始: angular 应用:用带 angular 拓展语法的 HTML 写模板,用组件类管理这些模板,用服务添加应用逻

angular2自学笔记(二)---八大主要构造块

angular的思想:总是把数据访问工作委托给一个支持性服务类. Angular 应用的:用 Angular 扩展语法编写 HTML 模板, 用组件类管理这些模板,用服务添加应用逻辑, 用模块打包发布组件与服务. 我们通过引导根模块来启动该应用. Angular 在浏览器中接管.展现应用的内容,并根据我们提供的操作指令响应用户的交互. angular2的八大主要构造块:模块 (module)组件 (component)模板 (template)元数据 (metadata)数据绑定 (data b

Java学习笔记之RMI远程方法调用

RMI 应用通常有两个分开的程序组成,一个服务端程序和一个客户端程序.一个典型的服务端程序创建一些远程对象,使得对这些远程对象的引用可以被访问,等待客户端调用这些远程对象提供的方法.一个典型的客户端程序获取远程引用,指向一个或者多个服务端上的远程对象,然后调用这些远程对象所提供的方法.通常我们称这为分布式对象应用程序. 3.1 RMI的工作方式 分布式对象应用程序需要做的事情: l 查找(定位)远程对象. 应用程序可以使用各种不同的机制取得远程对象的引用.比如应用程序可以通过 RMI 提供的简单