day5-Java类与对象

java编程 - 类与对象

Hello World示例

所有东西都在class里——class HelloWorld

main函数——在JAVA里称为 main方法(method)

新的关键字:publicstatic

println(方法)== C 的“printf”(函数)

  class Helloworld
  {
    public static void main(String[] args)
    {
      System.out.println("Hello World!");
    }
  }

  • ⚠️“类”名字都习惯首字母大写
  • 类的对象在运行时才产生。对象是类的范例,是类的描述。

Java数据类型

  • “类”是JAVA最主要的数据类型,某个变量的数据结构也可能是class。
  • 除了原始类型,如int、char、boolean、float,他们只是简单的生数据外,JAVA中其他所有东西都是class。
  • 区分:这些原始类型都是纯小写的。

属性

每个类下面有许多数据域——属性。

class Counter
{
 	int count;
}

属性只在其所在的类中具有全局性。由于封装性,而非在整个程序中具有全局性。

方法

类下面的函数——方法。

class Counter
{
 	int count;
  void increment(){
    count++;    
  }
}

这些方法是依附于它所在类的。

⚠️调用方法的步骤:

Counter carCounter;
carCounter.increment();
  1. 生成类的一个范例。如变量Counter carCounter ,是一个对象,以类Counter为数据类型。
  2. 基于该类的特定范例——对象 之上,来调用方法,如carCouner.increment();

Java方法&C函数区别

  1. 函数可以到处浮动,而方法被捆绑于特定对象上。//好处:是明确地对某个对象做事情,而不会搞错对象做事情。
  2. C中可以独立地调用某函数printf("Hello"),而Java必须基于一个特定对象来调用方法。out.print("Hello"); file.print("Hello");

构造方法

构造方法,是用于创建类的范例(即对象)的特殊函数方法。

构造方法的任务——就是初始化一个对象的内部状态。

  • 构造函数的名字与类的名字一致。
  • ⚠️构造函数没有返回类型
class Counter
{ 
  int count;
  public Counter(){ //这里的Counter就是一个构造方法
    count = 0;
  }
}
Counter myCounter = new Counter();//类外可调用
  • public 表示:在类以外的区域也可以调用。对于构造函数,需要public使其在类外可被调用,初始化一个类的对象。

  • 调用构造函数时,只要在前面加一个new即可调用。

多重构造方法

一个构造函数可以定义多种初始化构造方法。

public Counter(){
  count = 0;//初始化为默认值的简单构造器
}
public Counter(int startValue){
  count = startValue;//初始化为传参的复杂构造器
}

“重载” (Overloading) —— 定义相同名称的不同方法,通过输入参数的不同来区分这些方法,使其被调用时根据输入参数的不同,自动选择合适的方法执行。

区分同名的传参变量和属性

  1. 使用"this"来引用其所处于的对象。this也可以指向方法。

    指明某变量究竟是该对象的变量,还是同一类下其他全局变量,避免混淆。

class Shape
{
  int x;
  int y;
    void setPosition(int x, int y)//原为两对一样的x,y
    {
      this.x = x;//这里是把传参x,赋值给上面的x。
      this.y = y;//这里的this.x指向class shape里的x。
    }
}
  1. 也可以直接用不同的变量名区分。更加清晰。

    class Shape
    {
      int x;
      int y;
        void setPosition(int xpos, int ypos)
        {
          x = xpos;
          y = ypos;
        }
    }
    

示例类

如,Java内部的字符串类String class,用于存储和操作文本。

该“字符串类”,内部有一个被分配于存储字符的数组,以及许多处理文本的方法。

String unitCode = new String("COMSM0103")
  • 右侧是string构造函数,因为名字与类相同

  • new关键字,用于初始化新的对象

  • 创建字符串快捷方式:

    String unitCode = "COMSM0103"
    

    仅“字符串“类适用!因为创建字符串很常用。

  • substring( )方法,substring(5,7)从第5位开始到第7位结束,实际上只保留了5、6位。

三角形例

  • main方法需要定义参数: public static void main (String[] args);
  • main里的测试调用需要和Class里的一一对应;
    • 用“+”并列符,可以将分开的字符串粘合到一起。即使类型不同,如 int型和String
posted @ 2021-02-18 15:49  吃饭睡觉打代码  阅读(61)  评论(0)    收藏  举报