java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么?

问题描述

java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么?

java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么?

解决方案

估计是你的函数忘了加static,加了就可以直接调用了,比如
int add(int a, int b) { ... }
->
static int add(int a, int b) { ... }

解决方案二:

初始化一个对象啊,只有对象才能调用其它的函数,如果不实例化那么这个函数必须是静态函数

解决方案三:

要想调用函数必须有实例化对象,方法也好比是一个属性,是这个实例的一部分,有了这个实例才会有这个方法。而静态方法不是这个对象的一部分,是在启动程序时候就已经加载了,不会动了,独立存在,你这样直接可以用类名调用

解决方案四:

调用函数的必须是对象或类(静态函数),实例化就是创建对象的过程

解决方案五:

Java是面向对象的语言,所有的方法都封装在类里,你想调用该方法,必须先声明类的对象,这样才可以调用。当然,如果你声明的是静态方法,则可以不实例化,直接调用。面向对象和面向过程的语言是有区别的,Java、C#这些是完全面向对象的语言,像C这种面向过程的语言,没有对象的概念,自然是可以直接调用函数的。

解决方案六:

1.在静态方法中可以访问非静态字段,不过要是要实例化该类,只有实例化后,才会在堆中初始化实例变量
2.静态变量是在类加载时初始化的,而静态方法也是这时加载到方法区,所以编译器允许静态方法访问

时间: 2024-08-31 17:00:08

java中为什么main函数调用别的函数必须先实例化,实例化的目的是什么?的相关文章

基于Java中Math类的常用函数总结_java

Java中比较常用的几个数学公式的总结: //取整,返回小于目标函数的最大整数,如下将会返回-2 Math.floor(-1.8): //取整,返回发育目标数的最小整数 Math.ceil() //四舍五入取整 Math.round() //计算平方根 Math.sqrt() //计算立方根 Math.cbrt() //返回欧拉数e的n次幂 Math.exp(3); //计算乘方,下面是计算3的2次方 Math.pow(3,2); //计算自然对数 Math.log(); //计算绝对值 Mat

java数组-java中关于Sqrt()函数

问题描述 java中关于Sqrt()函数 import java.math.*; public class Test { public static void main(String[] args) { BigDecimal b1 = new BigDecimal(Math.sqrt(5)-1,new MathContext(100)); BigDecimal b2 = new BigDecimal(2,new MathContext(100)); BigDecimal result = b1.

详细讲解Java中的main()方法_java

前言 JAVA中的主函数是我们再熟悉不过的了,相信每个学习过JAVA语言的人都能够熟练地写出这个程序的入口函数,但对于主函数为什么这么写,其中的每个关键字分别是什么意思,可能就不是所有人都能轻松地答出来的了.我也是在学习中碰到了这个问题,通过在网上搜索资料,并加上自己的实践终于有了一点心得,不敢保留,写出来与大家分享. Java中的main()方法 java虚拟机通过main方法找到需要启动的运行程序,并且检查main函数所在类是否被java虚拟机装载.如果没有装载,那么就装载该类,并且装载所有

Java FP: Java中函数式编程的谓词函数(Predicates)第二部分

在上一篇文章中我们介绍了谓词函数.通过一个简单的只带一个返回值是true或者false的函数的接口,把函数式编程语言的优势带入到了类似Java的面向对象编程语言中.这一小节,我们将会介绍一些高级特性,方便你高效利用谓词函数. 测试 在测试代码中使用谓词的优势尤为明显.当你需要测试一个混合了数据结构与某些条件逻辑的方法时,通过使用谓词,你可以先单独测试数据结构,再测试条件逻辑. 第一步,先利用永真谓词或者永假谓词屏蔽用于判断的逻辑,将注意力集中在测试数据结构上: 1 // check with t

Java FP: Java中函数式编程的谓词函数(Predicates)第一部分

你一直在听说函数式编程将称霸整个编程届,而自己仍然沉浸在普通的Java里?请不要担心,因为你已经在日常Java代码中加入了函数式编程的特性.此外,函数式编程很有趣,能够帮你节省多行代码并且降低错误率. 什么是谓词函数? 许久之前,那时我还在用Java 1.4进行编码,当我第一次发现Apache Commons Collections,便爱上了谓词函数.Apache Commons Collections里的谓词函数仅仅只是一个只有一个方法的接口: evaluate(Object object):

java中截取指定字符串长度函数

     /*      * content内容过长可能会导致xml文件过大,加载太慢.      * 但从seo的角度考虑全部输出有利于搜索引擎,但一般情况下内容也不会太多      * 为防止空格换行css无法控制撑大页面,用正则表达式替换掉空格,所以截取前面100个字符,页面显示的内容多少用css控制       *zdz的作品,流风的作品      */      //str.trim().replaceAll("\s+"," ");      String

用java写一个main函数,打印出1-6这这六个数字的所有不同的排列

1.2.2.3.4.5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234.412345等.要求:"4"不能在第三位,"3"与"5"不能相连. package com.test; import java.util.ArrayList; import java.util.List; /** * 1.2.2.3.4.5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234.412345等.要求

Java中函数参数传递和数据存储

值传递是将要传递的值作为一副本传递的..引用传递,传递的是引用对象的内存地址..例如: int i=4;  int j=i;   //相当于把4复制了一个副本赋给了j 输出结果是i=4 ,j=4 Cint *p,*p1;int j=5;p=j;    //这里是把j在内存当中的地址赋给了指针pp1=p;   //这里是把指针p中保存的地址(就是j的地址)赋给了指针p1 j=4;    //这里改变j的值 输出结果是  j=4  ,  *p=4  ,  *p1=4  //因为p和p1指向的都是j

java中main方法的使用。

问题描述 java中main方法的使用. main方法只能放在有public修饰的class中使用吗? 解决方案 http://bbs.csdn.net/topics/360070052 可以去看看. 这里面应该有你需要的答案. 解决方案二: 如果你希望它作为程序入口点,必须这么做.如果你不把main作为程序入口点,那么不一定. 解决方案三: 所谓程序入口点就是程序开始执行,所调用的第一个函数.它是java虚拟机调用的,而不是你的程序的别的地方调用的. 解决方案四: 作为程序启动的入口,是必须的