当前位置:首页 » 编程语言 » java类的字段

java类的字段

发布时间: 2022-12-13 19:04:32

java中的属性和字段的区别

1、Java中的属性和字段有什么区别?
答:Java中的属性,通常可以理解为get和set方法。而字段,通常叫做“类成员”。

这两个概念是完全不同的。

属性只局限于类中方法的声明,并不与类中其他成员相关。例如:
void setA(String s){}
String getA(){}
当一个类中拥有这样一对方法时,我们可以说,这个类中拥有一个可读写的a属性(注意是小写a)。如果去掉了set的方法,则是可读属性,反之亦然。

类成员(字段),通常是在类中定义的类成员变量,例如:
public class A{
private String s = "123";
}
我们可以说A类中有一个成员变量叫做s。

② 什么是java的字段和JavaBeans

java的字段就是java的属性,也叫变量;
JavaBeans就是类似:
public class Student{
private String name;
private int age;
public void setName(String newName){
name = newName;
}
public void setAge(int newAge){
age= newAge;
}
public String getName(){
return name;
}
public int getAge(){
return age;
}

}

是一个纯粹的javabeans,有属性还有访问器,也就是相对应的set***/get***方法

③ java中类的字段为什么都要设为私有的

字段设为私有,是满足面向对象中封装性,

一个类不建议允许直接获取到另一个类的字段,

同时也不建议直接把自身字段暴露给另一个类,

本质上其实是为了隐藏具体实现,

同时,用get或者set方法来获取或者设置的话,可以在该方法中添加一些简单的验证逻辑,

比方说有个学生类,其中有个年龄字段,如果直接做成public的话,那么这个年龄字段可以设置为负值,

但是你做成了set方法的时候,你调用set设置年龄,那么你可以在set方法中去对为负数的年龄进行验证处理

Java面向对象类和类之间的关系教程:

④ JAVA里的字段是什么意思

sm yisd什么字段?

⑤ JAVA中 类、对象、成员与字段的区别

类就是某一类事物的抽象描述
对象是 类的具体实例
成员是类中的 组成部分
字段和成员类似
比如:
家 //这就是一个类,在这个家中你也不知道具体有哪些事物
父亲 //这是一个类的成员,当类没有实例化时,你也不知道具体是谁
地址 //这是一个字段 当类没有实例化对象时,你也不知道其具体值是啥
小明家 //这就是一个对象,你知道这个家里有哪些人哪些物
小明的父亲 //当类被实例化成对象时,其成员也就确定下来了。
北京新村2号 //这个地址也就确定下来了

⑥ java实体类如何加入虚拟字段

java实体类加入虚拟字段的步骤如下:
1、一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无法获得访问。
2、transient关键字只能修饰变量,而不能修饰方法和类。注意,本地变量是不能被transient关键字修饰的。变量如果是用户自定义类变量,则该类需要实现Serializable接口。
3、被transient关键字修饰的变量不再能被序列化,一个静态变量不管是否被transient修饰,均不能被序列化。

⑦ java "字段"啥意思

public final static InputStream in = nullInputStream();

nullInputStream是这样实现的:
private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0)
return null;
throw new NullPointerException();
}

他不是返回null,就是抛出异常,如何初始化in呢?
解答:
看了一下java.lang.System的源代码.
System类里有大量的native方法,是调用本地代码的,这些代码很可能是由虚拟机来调用的.
System类的开头有一段:
static {
registerNatives();
}
这段代码会在虚拟机启动的时候就执行,它在虚拟机里注册System需要使用的一些本地代码
比如:
private static native Properties initProperties(Properties props);
private static native void setOut0(PrintStream out);
在windows下的话,它就告诉虚拟机到哪个dll文件里去找相应的实现

>然而,我知道out是一个PrintStream的对象,但我查看了有关的原代码:public final static PrintStream out = nullPrintStream();
>public final static InputStream in = nullInputStream();
在nullInputStream()方法里有注释解释为什么会设置为空:

/**
* The following two methods exist because in, out, and err must be
* initialized to null. The compiler, however, cannot be permitted to
* inline access to them, since they are later set to more sensible values
* by initializeSystemClass().
*/
private static InputStream nullInputStream() throws NullPointerException {
if (currentTimeMillis() > 0)
return null;
throw new NullPointerException();
}
也就说in, out, and err 初始化为null,然后会在后来由initializeSystemClass()方法类初始化成有意义的值
/**
* Initialize the system class. Called after thread initialization.
*/
private static void initializeSystemClass() {
props = new Properties();
initProperties(props);
sun.misc.Version.init();
FileInputStream fdIn = new FileInputStream(FileDescriptor.in);
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
FileOutputStream fdErr = new FileOutputStream(FileDescriptor.err);
setIn0(new BufferedInputStream(fdIn)); !!!
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true)); !!!
setErr0(new PrintStream(new BufferedOutputStream(fdErr, 128), true)); !!!

// Enough of the world is now in place that we can risk
// initializing the logging configuration.
try {
java.util.logging.LogManager.getLogManager().readConfiguration();
} catch (Exception ex) {
// System.err.println("Can′t read logging configuration:");
// ex.printStackTrace();
}

// Load the zip library now in order to keep java.util.zip.ZipFile
// from trying to use itself to load this library later.
loadLibrary("zip");

// Subsystems that are invoked ring initialization can invoke
// sun.misc.VM.isBooted() in order to avoid doing things that should
// wait until the application class loader has been set up.
sun.misc.VM.booted();
}
in,out,err就是在以上方法以下三条语句里初始化的.
setIn0(new BufferedInputStream(fdIn)); !!!
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true)); !!!
setErr0(new PrintStream(new BufferedOutputStream(fdErr, 128), true)); !!!

private static native void setIn0(InputStream in);
~~~~~~~
这是个native函数,是前面registerNatives()的时候注册了的.这个函数应该是把实际连接到输入输出设备的句柄传给虚拟机并赋值给in,out,err

至于:
>InputStream是个抽象的类,怎么能使用char=(char)System.in.read()读入一个字符
我想你还没有明白什么是面向对象.
看看下面代码,我用OutputStream(也是抽象类,跟InputStream对应的输出类)以方便演示:
import java.io.IOException;
import java.io.OutputStream;
public class HelloWorld {

public OutputStream out=null;

public void setOutputStream(OutputStream out){
this.out=out;
}

public static void main(String[] args) throws IOException{
HelloWorld h=new HelloWorld();
PrintStream myOut=System.out;//System.out是一个PrintStream
h.setOutputStream(myOut);
h.out.write("hello,world".getBytes());//一般没人这么写的
}
}
以上代码执行后会输出hello,world
h.out是OutputStream,也是个抽象类,为什么能write(o)呢?
因为PrintStream是OutputStream的子类,所以能被"当作"OutputStream传给h.setOutputStream(myOut);
h.out.write执行的时候实际上是调用这个传进来的PrintStream实例的write方法
同样System.in和out肯定也是在initializeSystemClass()的时候被赋予了一个实际的可用的子类
要能体会到面向对象的好处,就要逐渐适应"对接口编程"的思想,相同接口的对象可以根据需要方便的替换.
比如,我刚才传了一个PrintStream,因此HelloWorld输出到了屏幕上. 我如果传给OutputStream的另一个子类FileOutputStream,就会输出到文件里

>还有为什么不是说字符流:writer和reader一般用于UniCode的读写吗?为什么键盘的输入用reader类呢?
不知道你在哪里看到说writer和reader一般用于UniCode的读写

⑧ java三个类组合怎么运行

一、java类里的字段默认的访问修饰符是default,对需要保护的成员变量需要用private关键字修饰。

二、类的构造方法格式:
public 类名(参数列表)
{函数体}

三、API(Application Program Interface,应用程序编程接口)
1.使用方法:
(1)导包
import 包路径.类名称;
如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写。
java.lang包下的内容不用导包,其他的包都需要import语句。
(2)创建
类名称 对象名 = new 类名称();
(3)使用
对象名.成员方法名();
(1)Scanner类:用于键盘输入数据到程序中。
Scanner sc = new Scanner(System.in);
获取键盘输入的一个int数字,int sum = sc.nextInt();
获取键盘输入的一个字符串,String str = sc.next();
下例中的运行结果绿色的行是客户端输入并按回车键,而黑色字体是程序输出的。

⑨ JAVA里的“字段”是什么

在api文档中可见“字段摘要”,其中的“字段”可以理解为类中的成员变量或成员常量。

⑩ java中字段是什么怎么定义字段字段是变量吗和变量 方法 属性有什么区别字段有返回值吗。。。

字段就是成员变量,注意是成员变量,不是局部变量。字段也就是属性了,一个类的属性。
只是叫法不同,java的API中一般叫成员变量就字段,有时也叫域。而我们一般的编程的时候,就字段叫成员变量

补------------
out就是一个字段,也就是是System类的一个成员变量。只不过个这成员变量是一个对象,也就是out是一个 PrintStream类的对象。这就是在一个类里执有其它类的对象的用法

热点内容
如何申请i7服务器地址 发布:2025-01-23 04:42:15 浏览:845
浏览器内核源码 发布:2025-01-23 04:41:34 浏览:659
精英版缤智少了些什么配置 发布:2025-01-23 04:41:30 浏览:356
编写c编译器 发布:2025-01-23 04:41:30 浏览:968
可以解压war包的编译软件 发布:2025-01-23 04:38:28 浏览:986
vivo手机有编译功能吗 发布:2025-01-23 04:31:57 浏览:568
自己架设云手机服务器 发布:2025-01-23 04:31:17 浏览:949
gcc命令行编译的方法 发布:2025-01-23 04:30:31 浏览:397
我的云服务器地址近期价格 发布:2025-01-23 04:29:05 浏览:625
js预览上传图片 发布:2025-01-23 04:28:54 浏览:407