Java-初识类和对象

  • 理解对象和类

写代码是为了解决客观生活中的问题,代码就注定要和现实中的“物体”打交道,就需要使用代码把现实中的“物体”表示出来,这个物体也就是Java中的对象;而现实中的物体可能非常复杂,我们需要通过抽象的方式,把复杂的物体变得简单一些,根据需要,只提取一些比较核心的信息到代码中,这个提取出来的信息就是Java中的类。Java中的类像C语言中的结构体一样,也是一种用户自定义类型,但是类功能相比于结构体来说要强大许多。相当于一个“高配的结构体”。Java中的对象就是某个自定义类型创建出的变量。
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。面向过程注重的是过程,在整个过程中所涉及的行为,就是功能。
JAVA是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。面向对象注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来
面向对象编程的过程:
1、先根据实际问题,创建出一些对象,每一个对象都会包含一些数据和行为。
2、结合这些对象再来一步一步考虑先执行什么再执行什么。

  • 学会创建类和对象

类就是一类对象的统称。对象就是这一类具体化的一个实例。
比如说,做月饼的模具它具有月饼的大小、形状、纹路等信息,它就相当于一个类,一个月饼模具可以做出来好多的月饼,做出来的月饼就相当于一个个的对象;总的来说,类相当于一个模板,对象是由模板产生的样本。一个类,可以产生无数的对象。
类的创建:
声明一个类就是创建一个新的数据类型,而类在 Java 中属于引用类型, Java 使用关键字 class 来声明类。我们来简单的声明一个类
1、class关键字作为起始
2、类中可以包含属性和方法。(属性就可以定义普通的变量没什么区别,方法和之前介绍的方法也是一样的)

//创建类 
class <class_name>{
    
          
 field;//成员属性    
 method;//成员方法 
}
//实例化对象 
<class_name> <对象名> = new <class_name>(); 

(class为定义类的关键字,ClassName为类的名字,{}中为类的主体。类中的元素称为:成员属性。类中的函数称为:成员方法。)
示例:

class yinger{
    
    
 public int age;//成员属性 实例变量
 public String sex;
 public String name;
 public void eat() {
    
    //成员方法
  System.out.println("吃饭!");
 }
 public void sleep() {
    
    
  System.out.println("睡觉!");
 }
}

类的实例化(对象的创建)
使用new这样的关键字来进行创建。
用类类型创建对象的过程,称为类的实例化

  1. 类只是一个模型一样的东西,限定了类有哪些成员.
  2. 一个类可以实例化出多个对象,实例化出的对象 占用实际的物理空间,存储类成员变量
  3. 做个比方。类实例化出对象就像现实中使用建筑设计图建造出房子,类就像是设计图,只设计出需要什么东 西,但是并没有实体的建筑存在,同样类也只是一个设计,实例化出的对象才能实际存储数据,占用物理空间

例题:定义一个Circle类并使用该类创建对象:构造三个圆对象,其半径分别为1.0、25和125,然后显示这三个圆的面积。

package gyy;
public class TestCircle {
    
    
  public static void main(String[] args) {
    
    //主方法
   Circle circle1=new Circle();//创建一个半径为1.0的圆
   System.out.println("半径为"+circle1.radius+"的圆的面积是"+circle1.getArea());
   Circle circle2=new Circle(25);//创建一个半径为25的圆
   System.out.println("半径为"+circle2.radius+"的圆的面积是"+circle2.getArea());
   Circle circle3=new Circle(125);//创建一个半径为125的圆
   System.out.println("半径为"+circle3.radius+"的圆的面积是"+circle3.getArea());
  }
}
class Circle{
    
    
 double radius;
 Circle(){
    
    
  radius=1.0;
 }
 Circle(double newRadius){
    
    
  radius=newRadius;
 }
 double getArea() {
    
    
  return radius*radius*Math.PI;
 }
}

(程序包括两个类,第一个类TestCircle类是主类,它的目的就是测试第二个类Circle,运行这个程序时,Java会调用这个主类的main方法。)
运行结果:

半径为1.0的圆的面积是3.141592653589793
半径为25.0的圆的面积是1963.4954084936207
半径为125.0的圆的面积是49087.385212340516

类的使用:
1、先根据类创建出对象;
2、使用成员访问操作符,就能够访问到对象的属性和方法;

注意:
Java中的成员变量如果没有初始化,会被设置成一个默认值,而C语言中的结构体成员变量如果没有初始化会得到一个随机值,虽然存在默认值,但是更加建议根据需要来把字段设成需要的初始值。

  • 了解类的成员

类的成员可以包含以下:字段、方法、代码块、内部类和接口等。
1.字段/属性/成员变量
在类中, 方法外部定义的变量. 这样的变量我们称为 “字段” 或 “属性” 或 “成员变量”(三种称呼都可以, 一般不会严 格区分).用于描述一个类中包含哪些数据。
注意:

  • 对于一个对象的字段如果没有显式设置初始值, 那么会被设置一个默认的初值。

默认值规则
(1)对于各种数字类型, 默认值为 0.
(2)对于 boolean 类型, 默认值为 false.
(3)对于引用类型(String, Array, 以及自定制类), 默认值为 null

  • null 在 Java 中为 “空引用”, 表示不引用任何对象. 类似于 C 语言中的空指针. 如果对 null 进行.操作就会引发异常.

2.方法
方法用于描述一个对象的行为。

class Person{
    
    
 public int age=19;
 public String name="yinger";
 public void show() {
    
    
  System.out.println("我叫"+name);
 }
}
class Test{
    
    
 public static void main(String args) {
    
    
  Person person=new Person();
  person.show();
 }
}
 

此处的 show 方法, 表示 Person 这个对象具有一个 “展示自我” 的行为.
这样的 show 方法是和 person 实例相关联的. 如果创建了其他实例, 那么 show 的行为就会发生变化

方法中还有一种特殊的方法称为 构造方法 (construction method),在实例化对象的时候会被自动调用到的方法, 方法名字和类名相同, 用于对象的初始化. 虽然我们前面已经能将属性就地初始化, 但是有些时候可能需要进行一些更复杂的初始化逻辑, 那么就可以使用构造方法.
3.static关键字的功能
(1)修饰属性
Java静态属性和类相关, 和具体的实例无关. 换句话说, 同一个类的不同实例共用同一个静态属性
(2)修饰方法
如果在任何方法上应用 static 关键字,此方法称为静态方法。
静态方法属于类,而不属于类的对象。
可以直接调用静态方法,而无需创建类的实例。
静态方法可以访问静态数据成员,并可以更改静态数据成员的值
注意事项1:
a.静态方法和实例无关, 而是和类相关. 因此这导致了两个情况: 静态方法不能直接使用非静态数据成员或调用非静态方法(非静态数据成员和方法都是和实例相关的).
b.this和super两个关键字不能在静态上下文中使用(this 是当前实例的引用, super是当前实例父类实例的引用, 也 是和当前实例相关).
注意事项2 :
a.我们曾经写的方法为了简单, 都统一加上了 static. 但实际上一个方法具体要不要带 static, 都需要是情形而定.
b.main 方法为 static 方法.
(3)代码块(后面详细学习)
(4)修饰类(后面讲内部类会讲到)

猜你喜欢

转载自blog.csdn.net/weixin_44378053/article/details/104237657
今日推荐