面向对象编程-上

一、java类及类的成员

属性、方法、构造器;代码块、内部类

二、面向对象的三大特征

封装性、继承性、多态性;(抽象性)

三、其他关键字

this、super、static、final、abstract、interface、package、import

1.1 类和对象

类:是对一类事物的描述,是抽象的、概念上的定义;

对象:是实际存在的该类事物的每个个体,也称为实例。 

面向对象的程序设计重点就是类的设计,设计类就是设计类的成员。

1.2 类的成员

常见的类的成员有:属性,方法。

属性(field):类中的成员变量; 方法(method):类中的成员方法=函数。

创建类的对象也称为类的实例化,或者实例化类。

如果创建了一个类的多个对象,则每个对象都独立地拥有一套类的属性。(非static)
Person p2 = p1;
//将p1变量保存的对象地址值赋给p3,导致p1和p3指向堆空间中的同一个实体对象

//类似于 p2就是p1的外号

对象的内存解析:堆存放实体对象,栈存放地址值。

package Object_shang;

public class Person_Test {

    public static void main(String[] args) {
        //创建Person类的对象
        Person p1 = new Person();
        //调用类的结构:属性、方法
        p1.name = "Tom";
        p1.age = 10;
        p1.isMale = false;
        System.out.println("name:"+p1.name +"  age:"+p1.age+"  isMale:"+p1.isMale);
        //调用方法
        p1.eat();
        p1.sleep();;
        p1.talk("汉语");
        //将p1变量保存的对象地址值赋给p3,导致p1和p3指向堆空间中的同一个实体对象
        //类似于 p2就是p1的外号
        Person p2 = p1;

    }
}
class Person{
    //属性
    String name;
    int age;
    boolean isMale;
    //方法
    public void eat(){
        System.out.println("人可以吃饭!");
    }
    public void sleep(){
        System.out.println("人可以睡觉!");
    }
    public void talk(String language){
        System.out.println("人可以说话,使用的是:"+language+"!");
    }
}

属性(成员变量) VS 局部变量

1. 相同点

        1.1 定义变量的格式相同:数据类型 变量名 = 变量值

        1.2 先声明,后使用

        1.3 变量都有其对应的作用域

2. 不同点

        2.1 在类中声明的位置不同

        属性:直接定义在类的一堆{}内

        局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量

        2.2 关于权限修饰符的不同

        属性:可以在声明属性时,指明其权限,使用权限修饰符

        常用的权限修饰符:private、public、缺省(默认权限)、protected   ====>封装性

        局部变量:不可使用权限修饰符

        2.3 默认初始化值的情况

        属性:类的属性,根据其类型,都有默认的初始化值

        整型(byte、short、int、long):0

        浮点型(float、double):0.0

        字符型(char):0(‘\u0000’)

        布尔型(boolean):false

        引用数据类型(类、数组、接口):null

        局部变量:没有默认初始化值,意味着在调用局部变量之前一定要显式赋值。特别地,形参在调用时赋值即可。

        2.4 在内存中加载的位置

        属性:加载到堆空间(非static)

        局部变量:加载到栈空间

package Object_shang;

public class User_Test {
}
class User{
    //属性(成员变量)
    String name;
    int age;
    boolean isMale;
    public void talk(String language){//language:形参,也是局部变量
        System.out.println("我们使用"+language+"进行交流!");
    }
    public void eat(){
        String food = "烙饼";//food 方法内的局部变量
        System.out.println("北方人喜欢吃:"+food);
    }
}

类中方法的声明和使用(方法就是描述类应该具有的功能)

1. 方法的形式

无返回值有返回值
无形参void 方法名(){}返回值的类型 方法名(){}
有形参void 方法名(形参列表){}返回值的类型 方法名(形参列表){}

2. 方法的声明: 权限修饰符  返回值类型  方法名(形参列表){  方法体  }

3. 说明

        3.1 权限修饰符:private、public、缺省(默认权限)、protected

        3.2 返回值类型: 有返回值 VS 无返回值

                如果方法有返回值,则必须在方法声明时,指定返回值的类型。同时,在方法中需要使          用关键字return来返回指定类型的变量或常量,“return 数据”。如果方法没有返回值,则方法          申明时使用void表示。  

        3.3 return关键字的使用

        1. 使用范围:使用在方法体中

        2. 作用:结束方法;针对有返回值类型的方法,使用“return 数据”的方法返回所要的数据;

        3. 注意:return关键字后不可以声明执行语句。

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值