zoukankan      html  css  js  c++  java
  • 类与对象Java

    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 value=100;”,而前面的示例中这样定义变量“MyClass obj=new MyClass();”,这两种方式定义的变量是一样的吗?

    不一样。

    前者为“原始数据类型”,诸如int,float之类的变量;

    后者为“引用类型”变量,“引用”一个对象的变量称为“引用类型”的变量,有时又简称为“对象变量”。

    从变量与内存分配上讲,当声明一个对象类型的变量时,实际上并没有创建一个对象,此变量=null。定义一个原始类型的变量时,会马上给其分配内存。
    从变量的初始化上讲,在定义原始变量时,Java要求必须显式初始化变量;而对象变量的初始化:对象变量如果不引用一个真实的对象,则必须声明为null。
    而且引用对象后的对象变量,如果不再使用此变量,JVM会回收MyClass对象所占用的内存(垃圾回收)。

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

    复制代码
    复制代码
    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)”。

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

  • 相关阅读:
    【Mybatis】【10】foreach 批量操作
    【Java】【30】数据基本类型的转换
    【Mybatis】【9】ResultMap支持继承
    【记录】【4】各种工具
    【cmd】【4】ping IP或者域名,看是否能连通
    【cmd】【3】查看jdk安装路径
    【JS】【29】解决浏览器自动填充密码输入框的问题
    QQ登入(2)获取用户信息
    QQ登入(1)-有客户端直接授权,没客户端web授权
    百度定位
  • 原文地址:https://www.cnblogs.com/zeminzhang/p/5984861.html
Copyright © 2011-2022 走看看