java类和对象

一、类

1.1 类定义与格式

// 创建类
class ClassName{
     field;//成员属性
     method;//成员方法
}

class为定义类的关键字,ClassName为类的名字,{}为类的主体。

类中包含的内容称为类的成员。

举例:

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

1.2 类的实例化

类相当于一张图纸,对象则是按照此张图纸创建出来的每一个个体产品,而按照图纸生产实际产品的这个过程(即用类类型创建对象的过程,称为类的实例化),使用new关键字来进行实例化操作。

Class Person{
     public int age;//成员属性  实例变量
     public String name;
     public String sex;
     public void eat(){//成员方法
            System.out.println("吃饭");
}
     public void sleep(){
            System.out,println("睡觉");
}
public class Main{
public static void main(String[] args){
         Person person = new Person();//通过new实例化对象
         person.eat();//成员方法调用需要通过对象的引用调用
         person.sleep();
          //可产生多个实例化对象
         Person person2 = new Person();
         Person person3 = new Person();
   }
}
//输出结果
//吃饭 
// 睡觉

注意:

(1)new关键字用于创建一个对象的实例;

(2)使用" . "来访问对象中的属性和方法;

(3)同一个类可以创建多个实例;

(4)类只是一个模型一样的东西,用来对实体进行描述,限定了类有哪些成员;

(5)类是一种自定义的类型,可以用来定义变量,但是在java中用类定义出来的变量我们称其为对象;

(6)实例化出来的对象占用实际的物理空间,存储类成员变量。(类是图纸,也需要占据内存空间)

2. 方法

2.1 方法的定义

用来描述一个对象的行为

public static 方法返回值类型 方法名称(形参列表){
     方法的指令;
     return 返回值;
}
class Person{
   public int age = 18;
   public String name = "不高兴";
   public void show(){
       System.out.println("我叫" + name + ", 今年" + age + "岁");
  }
}
  class Text {
  public static void main(String[] args){
    Person person = new Person();
    person.show();
  }
}
//执行结果
我叫 不高兴

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

Person person2 =new Person();
                person2.age=77;
                person2.name="阿拉蕾";
                person2.show();

此时执行的结果为“我叫阿拉蕾,今年77岁”。

2.2 构造方法(特殊的方法)

在实例化对象的时候会被自动调用的方法,方法的名字和类名相同,用于对象的初始化。

构造方法的特点:

(1)构造方法的名称必须与类名称相同;

(2)构造方法不需要写返回值类型,内部也不必写return语句;

(3)构造方法不需要显示调用,而是在new的时候自动被调用;

(4)构造方法也支持重载,重载规则和普通方法一样。

二、关键字

2.1 static关键字

若某个类中的某个成员加上了static,说明这个成员是一个类属性/类方法,若没有static,则成员是一个实例属性/实例方法

a.修饰属性
Java静态属性和类相关, 和具体的实例无关. 换句话说, 同一个类的不同实例共用同一个静态属性。

static class TestDemo{
        public int a;
        public static int count;
 }
 public static class Main{
     public static void main(String[] args) {
     TestDemo t1 = new TestDemo();
     t1.a++;
     TestDemo.count++;
         System.out.println(t1.a);
         System.out.println(TestDemo.count);
         TestDemo t2 = new TestDemo();
         t2.a++;
         TestDemo.count++;
         System.out.println(t2.a);
         System.out.println(TestDemo.count);
//输出结果
1
1
1
2

b.修饰方法
如果在任何方法上应用 static 关键字,此方法称为静态方法。
静态方法属于类,而不属于类的对象即可以直接调用静态方法,而无需创建类的实例。静态方法可以访问静态数据成员,并可以更改静态数据成员的值。
c. 修饰代码块
静态代码块不管生成多少个对象,其只会执行一次,且是最先执行的。

注意:

(1)静态方法中不能使用this;

(2)this指向的是当前的实例;

(3)static方法和实例无关,之和类相关;

(4)同理也无法在static方法中访问非static的变量和方法;

(5)static修饰代码块,代码块只是在类加载的时候执行一次,往往用来初始化静态成员。

2.2 this关键字

(1)this指向当前对象的引用;

(2)this的类型就是当前这个类的类型;

(3)this这个引用的指向不能修改;

(4)this也可以用来调用方法;

(5)this不能是null。

• this引用的类型:对应类类型引用,即那个对象调用就是那个对象的引用类型;
• this引用只能在"成员方法中使用";
• this引用具有final属性,在一个成员方法中,不能再去引用其他的对象。
• this引用是成员方法第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将
• 调用成员方法对象的引用传递给该成员方法,this引用负责来接收
• 在成员函数中,所有成员变量的访问,都会被编译器修改成通过this来访问
• this引用具有final属性,在一个成员方法中,不能再去引用其他的对象。
• this 表示当前对象引用(注意不是当前对象)。可以借助 this 来访问对象的字段和方法(普通方法和构造方法)

注意:

(1)需要在一个构造方法当中调用当前类的另外一个构造方法的时候,通过this()的形式调用

(2)必须放在第一行,且只能调用一个;

(3)使用this调用构造方法的时候,只能在构造函数当中使用,不能在普通方法中使用

三、修饰限定符

• private: 类内部能访问,类外部不能访问;
• default 默认(也叫包访问权限): 类内部能访问,同一个包中的类可以访问,其他类不能访问;
• protected: 类内部能访问,子类和同一个包中的类可以访问,其他类不能访问;
• public : 类内部和类的调用者都能访问。
 


 



 

     o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值