从零开始的java学习Day04----------基础篇(面向对象)

面向对象

一种强调对象的编程思想

面向对象的三大思想特征【重要】

封装,继承,多态

什么是类

类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
现实中,描述一类事物:
属性:就是该事物的状态信息,一定要这类事物都具备的。
行为:就是该事物能够做什么。

什么是对象

对象:是一类事物的具体体现(具体存在的)。对象是类的一个实例,必然具备该类事物的属性和行为。

对象是根据类来创建的,类中有什么,对象就有什么
成员变量和局部变量的区别
成员变量和局部变量定义的位置不同。
  • 成员变量:定义在类中,方法外
  • 局部变量:方法中或者方法声明上(形式参数)
作用范围不同
  • 成员变量:类中
  • 局部变量:方法中
初始化值不同
  • 成员变量:有默认值
  • 局部变量:没有默认值,不赋值不能使用
在内存中的位置不同
  • 成员变量:堆内存
  • 局部变量:栈内存
生命周期不同
  • 成员变量:随对象创建而创建,随对象消失而消失
  • 局部变量:随方法的的调用而存在,随方法的结束而消失

成员变量的调用

类名.方法名/变量名(静态)

定义一个类的格式

public class 类名{
     成员变量(属性);(定义格式和普通变量定义格式一样,区别是位置在类中,方法外)
     成员方法(行为);(定义格式和之前方法定义格式一样,区别是不用加static}

新建一个对象格式

类名 对象名 =new 类名()

使用对象访问类中的成员

对象名.成员变量;
对象名.成员方法();
当没有变量指向的对象,会被Java的垃圾回收机制回收

示例

class Student{
    int nianLing;
    String xingMing;
    String xingBie="男"; //这里的     三个成员变量均可以赋值,赋值后,对象调用的时候,默认值即为这里赋值的值
}
class StudentDemo{
    public static void main(String[] agrs){
        Student s = new Student();
        System.out.println(s.nianLing); //输出0
        System.out.println(s.xingMing); //输出null
        System.out.println(s.xingBie);  //输出null
        s.xingBie="女";                //给s.xingBie赋值
        System.out.println("----------------");
        Student s1 =new Student();
        System.out.println(s.xingBie);  //输出"女"
        System.out.println(s1.xingBie);//输出 "男"
        System.out.println("----------------");
        Student s2 =s;
        s2.xingBie="人妖";
        System.out.println(s.xingBie);  //输出"人妖",因为此时s2.xingBie和s.xingBie都指向同一个地址值,s2改变,s也会改变
        System.out.println(s1.xingBie);//输出 "男",s1无影响

    }
}

类可以作为方法的参数类型,使用同种类定义的对象,可以作为实参传到该方法使用,传递的数据是该对象堆内的地址值。
例:

     class Student{
         int nianLing;
         String xingMing;
         String xingBie;
          public shuChu(Student i){
              Ststem.out.println(xingMing); 
     }
}
     class StudentDemo{
          public static void main (String[] agrs){
               Student s =new Student;
               s.xingMing="蔡xk"
               s.shuChu(s);//输出"蔡xk"
}     

private

private是一个权限修饰符,代表最小权限。
可以修饰成员变量和成员方法。
被private修饰后的成员变量和成员方法,表示私有的,只在本类中才能访问,可以通过构造方法和本类中的方法来间接调取使用。
权限说明:
private(本类中使用) < default(默认,同一包使用) < protected(本类和子类使用) <public(全局使用)

setxxx/getxxx

指通过定义set/get方法,让外部使用本类时,可以访问类中私有(private)的成员变量。
this.命令
指所在类的当前对象的引用,即前面加了this的变量名,会调用当前类中该变量。(用作解决和外部参数同名冲突的问题)
谁调用this所在的方法,当前对象就是谁
构造方法
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
系统会默认生成一个初始的无参构造方法,用无参构造方法,成员变量的赋值就会是成员变量的值(成员变量定义时未赋值即为空)
也可以自己写一个有参数返回的构造方法(果你提供了构造方法,系统将不再提供无参数构造方法),哪些成员变量需要参数返回赋值可以自己选择(方法可以重载)。格式是:

//无参构造方法
public 类名(){
}          
//有参构造方法  
public 类名(成员变量类型 成员变量名,......){
     this.成员变量名=成员变量名;
     .........
}        
构造方法没有返回值,连void都没有

(sst/get/构造方法快捷键)
在idea里面,鼠标点所要生成构造方法的类里,按alt+insert键,可以快速生成set/get和构造方法

null不能调用方法
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值