java类与对象

java类与对象,第1张

java类与对象 java的类与对象 类与对象的定义
  • 在C语言中强调的是实现的过程,分析步骤,逐步解决问题。在JAVA中关注的是对象,将事情分解成不同的对象,通过对象之间的交互来实现。
  • 类是一类对象的统称,对象就是一个类的实例化。
类和类的实例化
  • 我们在解决问题的时候不必过分的关注过程,只需要了解对象的功能,并且能够使用它的功能就可以了。一个类可以实例化无数个对象。
    声明一个类就是创建一个新的数据类型,而类在java中属于引用类型, java使用class关键字来声明一个类
//创建类
class {
     field;//成员属性
     method;//成员方法
}

//实例化对象
 <对象名> = new ();

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

class Car{
       public int siza;//成员属性,实例变量
       public String colour;
       public String name;
       public void drive{   //成员方法
               Syste.out.println("这是我的车");
       }
}
类的实例化

用类类型创建对象的过程,称为类的实例化
1.类只是一个模型,限定了类有哪些成员
2.一个类可以实例化多个对象,实力化出的对象占用实际的物理空间,存储类成员变量
3.类是设计的图纸,而由类实例化出来的对象就是实际存在的。

class Car{
    public int siza;//成员属性,实例变量
    public String colour;
    public String name;
    public void drive{   //成员方法
            Syste.out.println("这是我的车");
    }
}
public  class Main{
   public static void main(String[] args ){
           Car car = new Car();//通过new实例化对象
           car.drive();//成员方法的调用通过对象的引用调用
           Car car1 = new Car(); //实例化对象
           Car car2 = new Car(); 
   }
}

注意

  • new关键字用于创建一个实例对象
  • 使用.来访问对象中的属性和方法
  • 同一个类可以创建多个实例
类的成员

`类的成员可以包括一下:字段,方法,代码块,内部类和接口等

字段,属性,成员变量

在类中方法的外部定义的变量,可以称为"字段"或
“属性"或"成员变量”
注意

  • 使用.访问对象的字段
  • "访问"既包含读,也包含写。
  • 对于一个对象的字段如果没有显式设置初始值,就会被设置为一个初始值。
    默认值规则
  • 对于各种数字类型,默认值为0
  • 对于boolean类型,默认值为false
  • 对于引用类型(String,Array,以及自定义类)默认值为null;
    null
    null在java中为"空引用",表示不引用任何对象,类型C语言的空指针,如果对null进行.进行 *** 作就会引发异常。
    字段就地初始化
    我们经常需要将字段设定显式初始值
  class Car{
       public int siza = 1;//成员属性,实例变量
       public String colour;
       public String name;
       public void drive{   //成员方法
               System.out.println("这是我的车");
       }
}
public  class Main{
      public static void main(String[] args ){
              Car car = new Car();//通过new实例化对象
              car.drive();//成员方法的调用通过对象的引用调用
              Car car1 = new Car(); //实例化对象
              Car car2 = new Car(); 
              System.out.println(car.siza);
      }
}

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

  class Car{
       public int siza;//成员属性,实例变量
       public String colour;
       public String name;
       public void drive{   //成员方法
               Syste.out.println("这是我的车");
       }
}
public  class Main{
      public static void main(String[] args ){
              Car car = new Car();//通过new实例化对象
              car.drive();//成员方法的调用通过对象的引用调用
              Car car1 = new Car(); //实例化对象
              Car car2 = new Car(); 
      }
}

static关键字

  • 修饰属性
  • 修饰方法
  • 代码块
  • 修饰类
修饰属性

java静态属性和类相关,和具体实例无关,同一个类的不同对象公用同一个静态属性

  class Car{
       public static int siza;//成员属性,实例变量
       public String colour;
       public String name;
       public void drive{   //成员方法
               Syste.out.println("这是我的车");
       }
}
public  class Main{
      public static void main(String[] args ){
              Car car = new Car();//通过new实例化对象
              car.drive();//成员方法的调用通过对象的引用调用
              Car car1 = new Car(); //实例化对象
              Car car2 = new Car(); 
      }
}

在这种情况下,多个对象访问使用的是同一个静态对象。并且静态变量被存储在方法区内。
修饰方法
如果在任何方法上应用static关键字,此方法就被称为静态方法。

  • 静态方法同样属于类,
  • 不需要实例化对象通过类就可以调用静态方法
  • 静态方法可以访问静态数据成员,并且可以更改静态数据的值
    注意
  • 静态方法不能直接访问非静态成员变量或者调用非静态方法
  • this和super两个关键字不能静态上下问使用,他们都涉及到实例对象。
    private实现封装
    private/public两个关键字表示"访问权限控制"
    -public修饰的成员变量或者成员方法,可以直接被类的调用者使用。
  • private修饰的成员变量或者成员方法,可以直接被类的调用者使用。
    类的调用者根本不用知道一个类有多少private成员
    使用private封装属性,并提供public方法供类的调用者使用
  • private不仅能修饰字段,也可以修饰方法
  • 方法访问权限的设置要结合具体情况
构造方法

构造方法是在使用关键字new实例化新对象会被自动调用,用于完成初始化。
new执行过程

  • 为对象分配内存空间
  • 调用对象的构造方法
    语法
  • 方法名称必须与类名称相同
  • 构造方法没有返回值类型声明
  • 每一个类中至少有一个构造方法(构造方法支持重载,如果没有,系统就会自动生成一个构造方法,并且没有参数)
  • 如果定义了构造方法,则默认的无参构造将不再生成
    代码块
    使用{}定义的一段代码
    根据代码块定义位置以及关键字,分为四种:
  • 普通代码块
  • 构造块
  • 静态块
  • 同步代码块
    普通代码块
    定义在方法中的代码块
public class Main{ 
 public static void main(String[] args) { 
 { //直接使用{}定义,普通方法块
 int x = 5 ; 
 System.out.println("x1 = " +x); 
 } 
 
 int x = 6 ; 
 System.out.println("x2 = " +x); 
 }
  
} 

构造代码块

  • 定义在类中的代码块(不加修饰符)实例代码块。(构造代码块一般用于初始化实例成员变量)
  • 实例代码块优先于构造函数执行
    静态代码块
    使用static定义的代码块一般用于初始化静态成员变量(只能访问静态数据成员)。
  • 静态代码块不管生成多少对象,只会执行一次,且是最先执行的
  • 静态代码块执行完毕后,实例代码块执行,然后是构造函数。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4997327.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存