「java普通成员」java类有哪些成员
本篇文章给大家谈谈java普通成员,以及java类有哪些成员对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中构造方法与普通成员方法相比,有哪些特点?
- 2、java构造方法与普通成员方法调用区别
- 3、Java问题:为什么类方法中不能访问普通成员变量而只能访问类变量??
- 4、java中成员的作用是什么?
- 5、java中静态成员变量和普通成员变量的区别
- 6、java类的成员有哪些
java中构造方法与普通成员方法相比,有哪些特点?
他们有各自的特点:
1. 构造方法: 类名(参数列表){}
一般写在成员变量的下面,没有返回类型,没有返回值是格式。
作用是:通过关键字new,创建类的一个实例,并初始化对象(比如初始化成员变量,就是在这个对象的准备工作)
调用: 类名 对象名 = new 构造方法(参数列表);
2. 成员方法: 返回类型 方法名(参数类表){}
是从现实中抽象出来的类的行为,也就是一个方法
作用:当需要时,执行某种用途或功能,可以返回一个值,或对象。
调用: 对象名.方法名(参数列表);
java构造方法与普通成员方法调用区别
构造方法用来初始化及创建一个对象的,普通成员方法可以通过对象来调用
Java问题:为什么类方法中不能访问普通成员变量而只能访问类变量??
呵呵,他们说的是不是不好理解啊?
好吧,那我举个容易理解的例子告诉你啊。
你说的“普通成员变量”其实就是“对象变量”,“普通成员”就是“对象方法”;
“静态变量”就是“类变量”,“静态方法”就是“类方法”。
这里面就涉及到类与对象的关系,我们举个例子:
人就是一个类,而由人生成出来的姚明、安东尼就是对象。
“人的眼睛个数”是类变量;
get人的眼睛个数()是类方法;
“身高”是对象变量;
get身高()是对象方法;
“普通成员方法可以访问静态变量”,也就是在姚明这个对象的get身高()中姚明想顺便获取“人的眼睛个数”那是可以的,就是2个眼睛吗。
“而相反的为什么静态方法却不能访问普通成员变量???为什么??”,在人这个类的get人的眼睛个数()中想获取身高。获取谁的身高呢?人这个类生出了那么多的对象出来,姚明有身高,安东尼有他的身高等等,人这个类不知道要获取哪个的啊。
从面向对象的思想来看,压根就说不过去啊。
这么长篇大论的希望对你有帮助哦。
java中成员的作用是什么?
public
class
Test
{
private
String
name;//成员变量,也是全局变量
public
void
changeName()
{
String
n
=
"tomoya";//n就是局部变量
name
=
n;
}
}
总的来说,定义在类里的,也就是name那个位置,就是成员变量,在JAVA里全局变量和成员变量是一个意思。
定义在方法里或域里就叫做局部变量,所谓域就是{}里面,比如
public
void
show()
{
int
b
=
2;//局部变量
if(true)
{
int
a
=
1;//局部变量
}
//这个位置访问a,无效
}
//这个位置,或其他方法里访问b,无效
他的作用范围:
局部变量离开了他的域{}就无效
成员变量的范围依赖他的访问修饰符,什么是访问修饰符呢?
public
protected
private
默认,定义时不给他访问修饰符就是默认
java中静态成员变量和普通成员变量的区别
成员变量
我们来研究一个事物:
属性:外在特征;例如人的身高,体重
行为:能够做什么;例如人有说话,打球等行为。
而在Java语言中,最基本的单位是类,类就是用来体现事物的。
用类class来描述事物也是如此:
属性:对应类中的成员变量
行为:对应类中的成员函数
定义类其实就是在定义类中的成员(成员变量和成员函数)
拓展:类是一个抽象的概念,而对象就是类的具体的存在,体现。例如:生活中的汽车,可以看做一个类,我们称之为汽车类,每一台车都有颜色和轮胎数(可以定
义为属性,即成员变量),每一台车都可以跑(即车的行为,对应类总的成员函数),我们把汽车实例化一下,即会产生一个对象,比如奔驰、宝马(BMW)。
Demo1:
[java] view plain copy
public class Car {
private String color; // 定义汽车颜色,全局变量
private int numLuntai; // 定义汽车轮胎数,全局变量
public Car(String color, int numLuntai){
super();
this.color = color;
this.numLuntai = numLuntai;
}
public void run() {
System.out.println(this.numLuntai+ "个轮子的" +this.color + "轿车在马路上行驶着");
}
}
[java] view plain copy
public class ClassTest {
public static void main(String[] args){
Car bmw = new Car("黑色", 4); // 创建一个轿车对象,名字为bmw
bmw.run();
}
}
运行结果:
4个轮子的黑色轿车在马路上行驶着
其中color和numLuntai就称为Car 类的成员变量,这个属性能够用来描述一个类的属性,否则,它就应该定义为局部变量。
例如一个for循环中的i即是局部变量。
[java] view plain copy
for(int i = 0; i args.length; i++) {
......
}
又例如写在成员方法中变量是局部变量。
[java] view plain copy
publicclass Car {
private String color; // 定义汽车颜色,全局变量
private int numLuntai; // 定义汽车轮胎数,全局变量
public Car(String color, int numLuntai){
super();
this.color = color;
this.numLuntai = numLuntai;
}
public void run() {
String carName=”宝马牌”; //这个就是局部变量
System.out.println(this.numLuntai+ "个轮子的" +this.color + carName+"轿车在马路上行驶着");
}
}
publicclass ClassTest {
public static void main(String[] args){
Car bmw = new Car("黑色", 4); // 创建一个轿车对象,名字为bmw
bmw.run();
}
}
结果:
4个轮子的黑色宝马牌轿车在马路上行驶着
成员变量和局部变量的区别
成员变量:
①成员变量定义在类中,在整个类中都可以被访问。
②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
③成员变量有默认初始化值。
局部变量:
①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
③局部变量没有默认初始化值
在使用变量时需要遵循的原则为:就近原则
首先在局部范围找,有就使用;接着在成员位置找。
静态变量
由static修饰的变量称为静态变量,其实质上就是一个全局变量。如果某个内容是被所有对象所共享,那么该内容就应该用静态修饰;没有被静态修饰的内容,其实是属于对象的特殊描述。
示例:
[java] view plain copy
class Person{
//成员变量,实例变量
String name;
//静态变量,类变量
//所有对象共享的属性用static修饰
static String country = "CN";
public void show(){
System. out.println(country + ":" + name);
//等效语句:System.out.println(Person.country+ ":" + this.name);
}
}
class StaticDemo{
public static void main(String[]args){
Personp = new Person();
System. out.println(p.country);
//可以用类名直接调用
System. out.println(Person.country);
}
}
结果:
CN
CN
成员变量和静态变量的区别
1、两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象被回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
2、调用方式不同
成员变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。
3、别名不同
成员变量也称为实例变量。
静态变量也称为类变量。
4、数据存储位置不同
成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
小结:
尽管三者的本质都是变量,可是使用时却有相当大的区别,稍不留神就可能陷入陷阱。且先记住:在一个类中,如果一个变量能够用来描述一个类的属性,那就定义
为成员变量,否则,它就应该定义为局部变量。而如果一个变量在全局中都能使用(某个内容是被所有对象所共享),那么我们就可以把这个变量用static来
修饰,即为静态变量。(还要注意它与静态方法的紧密联系,这里且不细述了)
//我复制别人的,都懒得打字!
java类的成员有哪些
在一个类的内部,一般包括以下几类成员:成员变量、构造方法、普通方法和内部类等。使用反射机制可以在无法查看源代码的情况下查看类的成员。编写程序,使用反射机制查看ArrayList类中定义的成员变量、构造方法和普通方法。
思路分析:这个ArrayList类不是自己定义的,就是Java里面的java.util.ArrayList类。
代码如下:
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ClassViewer {
public static void main(String[] args) throws ClassNotFoundException {
Class? clazz = Class.forName("java.util.ArrayList");
System.out.println("类的标准名称:" + clazz.getCanonicalName());
Constructor?[] constructors = clazz.getConstructors();// 获得该类对象的所有构造方法
System.out.println("类的构造方法:");
if (constructors.length != 0) {
for (Constructor? constructor : constructors) {
System.out.println("\t" + constructor);// 输出构造方法
}
} else {
System.out.println("\t空");
}
Field[] fields = clazz.getDeclaredFields();// 获得该类对象的所有非继承域
System.out.println("类的非继承域变量:");
if (fields.length != 0) {
for (Field field : fields) {
System.out.println("\t" + field);// 输出非继承域
}
} else {
System.out.println("\t空");
}
Method[] methods = clazz.getDeclaredMethods();// 获得该类对象的所有非继承方法
System.out.println("类的非继承方法:");
if (methods.length != 0) {
for (Method method : methods) {
System.out.println(method);// 输出非继承方法
}
} else {
System.out.println("\t空");
}
}
}
java普通成员的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java类有哪些成员、java普通成员的信息别忘了在本站进行查找喔。
发布于:2022-12-01,除非注明,否则均为
原创文章,转载请注明出处。