本文目录一览:
- 1、java中什么是类 什么是方法有哪些
- 2、java中,什么是类,方法,函数? 三者又有什么区别?
- 3、Java类和方法的定义
- 4、java类方法?
- 5、java中什么是类方法 什么是 类函数 什么是成员变量 什么是成员 方法?
- 6、java类的方法由哪几部分组成?
java中什么是类 什么是方法有哪些
Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。Class类封装一个对象和接口运行时的状态,当装载类时,Class类型的对象自动创建。Class没有公共构造方法。Class对象是在加载类时由Java虚拟机以及通过调用类加载器中的defineClass方法自动构造的,因此不能显式地声明一个Class对象。虚拟机为每种类型管理一个独一无二的Class对象。也就是说,每个类(型)都有一个Class对象。运行程序时,Java虚拟机(JVM)首先检查是否所要加载的类对应的Class对象是否已经加载。如果没有加载,JVM就会根据类名查找.class文件,并将其Class对象载入。基本的Java类型(boolean、byte、char、short、int、long、float和double)和关键字void也都对应一个Class对象。每个数组属于被映射为Class对象的一个类,所有具有相同元素类型和维数的数组都共享该Class对象。一般某个类的Class对象被载入内存,它就用来创建这个类的所有对象。
java中,什么是类,方法,函数? 三者又有什么区别?
类 就是 指一个种类,比如 人 ,是一个类,动物 也是一个类,等等
而如果特指某个人,则是实体。
在Java中,类的定义是 : class 类名 ,通常,我们在Java 中提到class,就是指类的意思。
( 符号要去掉)
另外,方法与函数其实一样的,只是在C语言中我们习惯叫函数,而在Java中我们习惯叫方法,不管怎么叫,都是指同一个意思。
方法(或函数,为了方便,下面我都说 方法 ) 必须在类中。方法的定义 :
修饰符返回值方法名 (参数类型 参数名){.....}
( 符号要去掉)
通常你看到一个带()的就是方法了,例如: aa.XXX(); 是指调用实体 aa的XXX()方法。
类 可以拥有 属性跟方法。方法在类中。
在 类 和 方法 中均创建 某个类 的实体,可以调用类的方法。
程序运行时,首先是从main()方法开始运行的。
main()函数必须放在 跟你文件名同名的类中,另外一个class文件中只能有一个mian()方法,
否则,在编译运行的时候会出错。
Java类和方法的定义
类的定义:
public class Test {//类的访问修饰符可以是public,默认(就是没有),
//abstract,final,class是定义类的关键字
方法的定义:
//方法的定义:
/**
* [访问修饰符] [static] [是否有返回值类型] 方法名(参数列表){
* [方法执行体]
* [return返回值]
* }
*/
public void getName(){
}
//静态方法
public static void main(String[] args) {
}
}
java类方法?
emm...问题...不少。
1、这个构造函数问题就很大:
你传递一个r数组进来,然后你又让this.v1=v1,this.v2=v2,那么这个r的意义到底是什么?你构造出来的这个向量的v1和v2也还是根本没有任何值。
2、这。。这块问题太多了,我都不知道该怎么说,就全都不应该这么玩,下面加法也是一样的我就不圈出来了。
首先,非常不建议用null来声明任何变量,你声明r[]数组为null,下面又在循环里使用r[i],r都不是一个东西(因为它是null,还真不是个东西 手动滑稽),r[i]必然导致万恶的空指针异常NullPointerException。然后前面第一点说了,你的v1和v2根本就没有值,其实他们也是null,所以v1.length也将产生空指针异常,你的for循环根本没法进行。好,就算假设你的v1和v2都声明为new double[0]了,他们不再是null了,那么你的这个方法最终有可能返回null,又来了又来了,不要随便使用null,一不小心可能导致你main方法中调用这个方法后再次造成空指针异常。所以你非要这样写的话也建议写成return new double[0];这样即使它是一个空的数组但最起码它已经是个对象了,不再是null了。
3、main方法中null又双叒来了:
null数组不能放任何东西进去,不然将导致空指针异常。
所以现在怎么办?我估计你也发现了,因为你不知道这个数组究竟有多少个数字所以无法准确地定义这个r的长度。
本来我认为最优的做法是利用java的几种数据结构来保存输入项就好了,但是我怕你还没学到,其中这几个数据结构都不需要指定长度就能保存数据,他们能保存的最大数据量为int的最大值:java.util.List(java的集合,特别好用)、java.util.Vector(没错,java本来就有向量这种数据结构,比你这个MyVector功能要多一些)、java.util.Stack(栈其实是继承了向量,是一种特殊的向量)、java.util.Queue(java的队列),常用的就这些。
另外一种方法就是指定r[]数组有一个较大的length,也就是一开始就声明的足够大,比如直接double[] r = new double[999]但是这种是非常不好的办法,一个是如果你最终只存储两三个数字,那么数组空间就浪费太多了,另外是如果超过了999个数字,又会导致数组溢出。
所有我下面采用了第三种直截了当的方法帮你改进为,一开始你要输入向量的长度,你要说明向量到底有多长,这样不就能准确地定义r[]数组了吗?look:
这样就稳得一批了。
4、再看你main方法的最后:
你这种设计方法根本没有体现出两个向量之间的运算关系啊,根本就是只有一个向量在这里。因此,你的运算函数应该修改为传入一个新的向量,也就是这样:
这样的话,main函数里就可以这样了:
看到没,是不是一眼就能看出是向量1和向量2相加、点积?
5、审题!审题!你的toString()方法呐?结果保留两位小数呐?see:
另外题目里还说要定义一个int n的成员变量表示维度。我没太明白这个维度是啥?这不就是一维向量吗?维度不就是1吗?
综上所述,代码被我整体修改为:
public class MyVector {
private double[] array;
private int n = 1;
public MyVector(double[] array) {
this.array = array;
}
public double[] getArray() {
return this.array;
}
public double[] MyVectorDott(MyVector myVector2) {
double[] array2 = myVector2.getArray();
double[] result = new double[this.array.length];
for (int i = 0; i this.array.length; i++) {
result[i] = this.array[i] * array2[i];
}
return result;
}
public double[] MyVectorAdd(MyVector myVector2) {
double[] array2 = myVector2.getArray();
double[] result = new double[this.array.length];
for (int i = 0; i this.array.length; i++) {
result[i] = this.array[i] + array2[i];
}
return result;
}
public String toString() {
String s = "(";
for (int i = 0; i this.array.length; i++) {
if (i this.array.length - 1) {
s += String.format("%.2f", this.array[i]) + ",";
} else {
s += String.format("%.2f", this.array[i]);
}
}
return s + ")";
}
public static void main(String[] args) {
System.out.print("请输入向量长度:");
Scanner input = new Scanner(System.in);
int length = input.nextInt();
double[] array1 = new double[length];
double[] array2 = new double[length];
System.out.print("请输入第一组向量值:");
input = new Scanner(System.in);
for (int i = 0; i length; i++) {
array1[i] = input.nextDouble();
}
System.out.print("请输入第二组向量值:");
input = new Scanner(System.in);
for (int i = 0; i length; i++) {
array2[i] = input.nextDouble();
}
input.close();
MyVector myVector1 = new MyVector(array1);
System.out.println("向量1为:");
System.out.println(myVector1.toString());
System.out.println("向量2为:");
MyVector myVector2 = new MyVector(array2);
System.out.println(myVector2.toString());
MyVector myVector3 = new MyVector(myVector1.MyVectorAdd(myVector2));
System.out.println("向量1与向量2求和为:");
System.out.println(myVector3.toString());
System.out.println("向量1与向量2点积为:");
MyVector myVector4 = new MyVector(myVector1.MyVectorDott(myVector2));
System.out.println(myVector4.toString());
}
}
运行结果:
代码老是会挤在一起,你自己整理一下
java中什么是类方法 什么是 类函数 什么是成员变量 什么是成员 方法?
类方法就是在类上面,不需要初始化对象就能用的方法
一般就像常识一样的东西,比如数学的一些计算
像成员方法就是每个对象自己的方法,只是在类上面做了声明,比如说睡觉,吃饭都是具体到人就是具体到这个对象上面的一个行为,
我觉得理解到这里就足够了
java类的方法由哪几部分组成?
组成:一个简单的java程序由java包(如:import java.awt.*)、类声明 、变量、构造方法(可缺省)、方法 这几部分构成。
Java:
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java 编程语言的风格十分接近C、C++语言。Java是一个纯的面向对象的程序设计语言,它继承了 C++ 语言面向对象技术的核心,Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。