当前位置:   article > 正文

2021-05-23_[process completed (signal 11) - press enter]

[process completed (signal 11) - press enter]

一.类的定义与使用

class 类名称 {
         属性 (变量) ;
         行为 (方法) ;
}
  • 1
  • 2
  • 3
  • 4

类属于一种数据类型,要依靠对象使用

类名称 对象名称 = new 类名称 () ;
或
类名称 对象名称 = null ;
对象名称 = new 类名称 () ;
  • 1
  • 2
  • 3
  • 4

例如:

 import java.util.*;
class Fruit { 
    String name ;
    String taste ;
    public void get() {
        System.out.println("这个" + name + ",味道是" + taste+",买它,买它");
    }
}
public class Testfruit {
        public static void main(String args[]) {
            Fruit fru = new Fruit() ;
            fru.name = "苹果" ;
            fru.taste = "甜的" ;
            fru.get() ;
        }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

运行结果:

这个苹果,味道是甜的,买它,买它
  • 1

二.构造方法
关于构造方法要明白的几点内容:
1.构造方法可以在类实例化的过程中做一些初始化的工作。
2.构造方法的名称必须与类的名称相同,并且没有返回值。
3.每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认的构造方法。
举个例子:

import java.util.*;
public class Dog{
    String name;
    int age;
    Dog(String name1, int age1){
        name = name1;
        age = age1;
        System.out.println("Hello 我是狗!!!");
    }
    void bark(){
        System.out.println("汪汪");
    }
    void hungry(){
        System.out.println("主人,我饿");
    }
    public static void main(String arg[]){
        Dog myDog = new Dog("花花", 1);
        String name = myDog.name;
        int age = myDog.age;
        System.out.println("狗的名字是"+name+";狗年龄是"+age);
        myDog.bark();
        myDog.hungry();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

运行结果:

Hello 我是狗!!!
狗的名字是花花;狗年龄是1
汪汪
主人,我饿
  • 1
  • 2
  • 3
  • 4

这个例子中要注意:
构造方法,没有返回值
普通方法,必须有返回值
创建对象时传递的参数要与构造方法参数列表对应

三.this
1.关键字this,通俗的讲,就是我们普通话中的“我”,指当前对象自己。

public class Hello { 
    String s = "Hello"; 
    public Hello(String s){ 
        System.out.println("s = " + s); 
        System.out.println("1 -> this.s = " + this.s); 
        this.s = s; 
        System.out.println("2 -> this.s = " + this.s); 
    } 
    public static void main(String[] args) { 
    Hello x=new Hello("HelloWorld!"); 
    } 
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

运行结果:

s = HelloWorld!
1 -> this.s = Hello
2 -> this.s = HelloWorld!
[Process completed - press Enter]
  • 1
  • 2
  • 3
  • 4

分析:
这和我所学的c++非常相识,当参数与成员变量名相同时,如this->x=x,不能写成 x=x。

第一行就是直接对构造函数中传递过来的参数s进行显示的结果; 第二行是对成员变量s的显示;第三行是先对 成员变量s 赋传过来的参数s值后再显示。
2.把this作为参数传递

public class A { 
  public A() { 
    new B(this).print(); 
  } 
  public void print() { 
    System.out.println("Hello from A!"); 
  } 
} 
public class B { 
  A a; 
  public B(A a) { 
    this.a = a; 
  } 
  public void print() { 
    a.print(); 
    System.out.println("Hello from B!"); 
  } 
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

运行结果:

  Hello from A! 
  Hello from B! 
  • 1
  • 2

分析:
对象A的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。
四.总结
这一周我学习了面相对象,收获颇多。同时也让我知道我有很多不足,很多要学习,要思考的地方。有了C++面向对象编程的基础,让我在学习JAVA中,省了不少力,这两个中有很多共同点。
另外,在学习的过程中,一定要动手做、试着写代码,而不是抱一本书,一个视频看看,一定要多写,要多写,这样才能有自己的理解,自己的思考,才能提高。在课后,要及时复习,多加理解,把所学的每一个代码在脑中像放动画一样播放一遍,这样学习非常有效果。
在学习中遇到困难,不懂的地方,要尽量独立解决,上网查资料,这样会印象很深,也会记得更牢。
好了,这一周就结束了,继续努力吧。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/585003
推荐阅读
相关标签
  

闽ICP备14008679号