类和对象(1)

1 篇文章 0 订阅
1 篇文章 0 订阅

OOP(Object-Oriented Programming)面向对象程序设计的编程语言的三大特性:封装、继承、多态

第一大特性:封装性(让类的调用者不需要具体知道类的实现细节),其目的是为了降低使用成本

类和对象的关系:
1)类是对象的抽象描述,而对象是类的实例化;

2)定义类的时候并没有为其分配实际的内存空间进行存储,而创建对象却占有实际的内存空间。

使用class关键字创建一个类,不加权限修饰符则会默认为Default。(权限修饰符:public/protected/default/private)

//定义一个 人的类
class Person {  
    public int age;             //(基本类型)属性/成员变量/实例变量/字段--默认初始值0
    public String name;         //(引用类型)属性/成员变量/实例变量/字段--默认初始值null
    public boolean isMarried;   //(基本类型)布尔默认值 false
                                //          char默认值 \u0000



    public void eat() {              //成员方法
       System.out.println("吃饭!");  
}                                 
    public void sleep() {
       System.out.println("睡觉!");  
   }
}

被static修饰的叫做静态成员,而静态成员变量/方法都不依赖于对象。

也就是说从此只和类相关,所以静态的方法只能访问静态的成员变量!

//使用关键字 new 创建一个对象
Person person = new Person();

//此条语句一旦执行,则会发生:1)堆上开辟一个空间存储new出来的对象 
//                          2)自动生成一个无参构造方法public Person()

person.eat()        //调用谁就.谁

在IDEA中,alt+Insert可以快速生成构造函数,可以使用其来创建构造函数或者get/set方法

class Person { 
 private String name;
 private int age; 
 private String sex; 
 
 //默认构造函数 
 public Person() { 

 //this调用构造函数
 this("bit", 12, "man");  //必须放在第一行进行显示
 } 
 
 //如果不写这个构造函数,那么系统默认生成上面的构造函数但不会显示,
 //这两个构造函数之间的关系为重载

 public Person(String name,int age,String sex) { 
 this.name = name;         
 this.age = age; 
 this.sex = sex;         //this 代表当前对象的引用,而不是很多书中说的当前对象 
 }

方法重载:方法名相同,但是参数(个数,类型)和返回值都不做要求,这样的两个方法构成重载!

方法重写:方法名、参数(个数,类型)和返回值必须完全一样,这样的两个方法构成重写,最好加上@override注解

//Object类是所有类的超/父类
//重写Object的toString方法

 @Override 
 public String toString() { 
     return "Person{" + 
             "name='" + name + '\'' + 
             ", age=" + age + 
             '}'; 
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值