博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
课堂作业(类与对象)
阅读量:6238 次
发布时间:2019-06-22

本文共 1848 字,大约阅读时间需要 6 分钟。

一:验证ClassAndObjectTest.java

1)代码:

public class ClassAndObjectTest {    public static void main(String[] args) {        //创建类的实例,定义一个对象变量引用这一实例        MyClass obj = new MyClass();        //通过对象变量调用类的公有方法        obj.myMethod("Hello");        //给属性赋值        obj.setValue(100);        //输出属性的当前值        System.out.println(obj.getValue());        //直接访问对象公有字段        obj.Information = "Information";        //输出对象公有字段的当前值        System.out.println(obj.Information);    }}/** * 自定义Java类的示例 */class MyClass {    // 公有字段    public String Information = "";    // 自定义公有Java实例方法    public void myMethod(String argu) {        System.out.println(argu);    }// 定义属性:私有字段+get方法+set方法    private int value;    public int getValue() {        return value;    }    public void setValue(int value) {        this.value = value;    }}

2)结果:

3)结果分析:需要定义一个对象变量引用实例,赋值给对象变量,再进行调用。

 

二、解决问题系列

int数据类型,可以直接使用“==”判断两变量值是否相等,那么对象变量也可以使用“==”判断两变量值是否相等吗?

public class Test {    public static void main(String[] args) {        // TODO Auto-generated method stubFoo obj1 = new Foo();Foo obj2 = new Foo();System.out.println(obj1==obj2);    }}class Foo{    int value=100;}

结论:字符串只可以用equals比较,不能用"=="。

 

三、以下代码为何无法通过编译?哪儿出错了?

 

public class Test {    public static void main(String[] args) {        // TODO Auto-generated method stub     Foo obj1 = new Foo();    }}class Foo{    int value;public Foo(int initValue){    value=initValue;}}

结论:将“Foo obj1 = new Foo();”改为“Foo obj1 = new Foo(4)”。

用户自定义构造方法,引用时内部应有实参。

四、解决问题

早期我们经常这样定义变量“int value=100;”,而前面的示例中这样定义变量“MyClass obj=new MyClass();”,这两种方式定义的变量是一样的吗?

 

第一个是“原始数据类型”;

第二个是“引用类型”变量。

从变量与内存分配上讲,当声明一个对象类型的变量时,实际上并没有创建一个对象,此变量=null。定义一个原始类型的变量时,会马上给其分配内存。

从变量的初始化上讲,在定义原始变量时,Java要求必须显式初始化变量;而对象变量的初始化:对象变量如果不引用一个真实的对象,则必须声明为null。
而且引用对象后的对象变量,如果不再使用此变量,JVM会回收MyClass对象所占用的内存(垃圾回收)。

转载于:https://www.cnblogs.com/ghs1065248758/p/5981925.html

你可能感兴趣的文章
loadrunner analysis graph settings
查看>>
animationFromTop
查看>>
Java多线程运行时序问题
查看>>
SEM如何做数据分析?
查看>>
Word文档怎么在线压缩变小?
查看>>
语音转文字如何在线转换的?
查看>>
区块链教程Fabric1.0源代码分析policy(背书策略
查看>>
平台化,中台化
查看>>
比你优秀的人都在努力,你还有什么理由浑浑噩噩
查看>>
无线传输更安全也更稳定
查看>>
ABB焊接机器人伺服电机维修常见故障
查看>>
oracle使用plsql插入数据中文乱码问题
查看>>
ssh各种异常登陆
查看>>
nginx域名配置方法
查看>>
Java 基本问题
查看>>
马哥2016全新Linux+Python高端运维班第一周作业
查看>>
setup Docker private registry
查看>>
Redis 为什么使用单进程单线程方式也这么快
查看>>
JAVA's NIO, Netty And Mina文章推荐
查看>>
《Java从小白到大牛精简版》之第4章 Java语法基础
查看>>