zoukankan      html  css  js  c++  java
  • java课堂练习——类与对象

      今天我们在Java课上学习了类与对象的知识点

    一:验证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 stub
    Foo obj1 = new Foo();
    Foo obj2 = new Foo();
    System.out.println(obj1==obj2);
        }
    }
    class Foo{
        int value=100;
    }

    结论:进行字符串的比较时不能用==,要用equals。

    当“==”施加于“原始数据类型”变量时,是比较变量所内容数据是否相等
    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);”。

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

    1.使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”

    import java.util.Scanner;
    class A{
    public static int id=0;
    public A()
    {
    id++;
    System.out.println("创建第"+id+"个对象");
    }
    }
    public class Javapingshi{
    public static void main(String[] args){
    while(1>0){
    A obj=new A();
    System.out.println("请选择1.继续创建对象2.结束");
    Scanner sc=new Scanner(System.in);
    int i=sc.nextInt();
    if(i==2){
    break;
    }
    }
    }
    }

    结果截图

  • 相关阅读:
    Java中“==”与equals的区别以及equals方法的重写
    Java中的Switch....case语句:
    Java中的基本数据类型
    HTTP与HTTPS的区别
    深入理解HTTP协议、HTTP协议原理分析
    IntelliJ IDEA下的使用git
    Spring RestTemplate详解
    Java 适配器(Adapter)模式
    LINUX的ssh免密码配置
    CDH6.2安装配置第一篇:CDH配置本地http服务
  • 原文地址:https://www.cnblogs.com/qq1499632156/p/5984895.html
Copyright © 2011-2022 走看看