JAVA--SE基础知识-面向对象上

1类和对象

1.1面向对象和面向过程

           面向过程:是以流程为中心的编程思想,实现功能的每一步都是自己实现的。

           面向对象:是以对象为中心的编程思想,通过指挥对象来实现所需要的功能。

面向过程存在的问题:

           1.流程之间相互依赖,导致代码之间的耦合性非常高。
           2.不利于程序后期的维护和后期功能的扩展。

 1.1.1面向对象过程

面向对象过程:面向对象的开发过程其实就是不断地创建对象、使用对象、指挥对象做事情的过程,是建立在面向过程的基础上,就是把任何一个事物看作是一个整体,从事物的特征(属性)和行为(方法、功能)两个方面进行描述。

特征:抽象、封装、继承、多态。

如果说三大特征的话抽象可以省略。所以面向对象所学的就是这几个特征。

1.1.2类和对象的关系

理解:只要是客观存在的事物皆可称之为对象,Java中爱说:"万事万物皆对象"。

类的理解:

  1. 类是对现实生活中一类具有相同属性和行为的事物的抽象。
  2. 类是对象的数据类型,类是具有相同属性和行为的一组对象的集合。
  3. 简单来说,类就是对现实事物的一种描述。                               

类的组成:

  1. 属性:事物的特征,例如手机(品牌、尺寸、价格)。
  2. 行为:事物的执行的行为,例如(打电话、发信息)。

类和对象的关系:

  • 类:类是对现实生活中具有共同属性和方法的事物的抽象。
  • 对象:能够看得见摸得着的一种真是存在的事物。

 什么是对象:

理解:具体存在的一个事物。

特点:

  • 无论两个事物多么的接近,特征和行为是多么的相似不可以说是同一个对象,仍是两个对象。
  • 一项法律法规也是一个对象。

 2.抽象

理解:把同一类事物的属性(特征)和方法(行为)进行抽象、归纳、总结。

3.封装

意义和目的
  • 就是包装的意思,为了保证抽象出来数据的安全性。
  • 封装包括对属性和方法的封装,而且同一类事物要把它们的属性和方法封装到一起,这才是一个完整的封装。
  • 封装不是绝对的,如果需要访问封装起来的属性和方法,就必须通过指定的公共入口 ( 方法、接口 )
  • 抽象和封装都是概念性的,在程序中它们都需要代码的形式来体现,这就是类 (class)。

 3.1类的定义(类的设计)

类的组成:是由属性(特征)和方法(行为)组成,类是由类声明和类体构成。

          属性::就是变量,也称为属性。

           行为:就是new的对象,也称为方法

格式:

class 类名{

//成员变量

//方法

}

理解:

        class是定义类的关键字,"class 类名"是类的声明,类的{}中的内容是类体。类体中的内容是由成员变量和方法(普通方法)(构造方法)组成。

  • 成员属性或者全局变量:就是在类中任何方法或者代码块外部定义的变量,整个类中都可以使用。成员变量,都有默认值,会根据数据类型来决定。
  • 局部属性或者局部变量:就是在方法或者代码块内部定义的变量,只能在方法内部或者代码块内部使用,而且局部变量必须要初始化了才能使用。

4.对象的创建

理解:创建对象的过程成为类的实例化,最常见的创建对象的方式是使用new运算符。创建对象的过程包含对象分配存储空间,为成员变量赋初始化值和调用构造方法。

特点:
  1. 类是对对象的抽象,对象是类的实例化
  2. 一个类可以创建多个对象,但是对象名不能一致。
  3. 可以通过对象来调用方法和属性。
格式:
类名  对象名 = new 类名();
    byte d;
    int a;
    double b;
    String name;
    char c;
    boolean tomp;
public static void main(String[] args) {
        KE4 ke4= new KE4();
        System.out.println(ke4.d+"  "+ke4.a+" "+ke4.b+" "+ke4.name+" "+ke4.c+" "+ke4.tomp);
        System.out.println("输出每个类型的默认值");
}

4.1构造方法

创建类的对象时,实际上是通过构造方法来完成的。

构造方法特点:

  • 构造方法没有返回值。
  • 构造方法的方法名必须和类名相同。
  • 构造方法不能被static关键字修饰。

 类名 对象名=new 构造方法(参数列表);

格式:

访问修饰符 类名(参数列表){

}

 作用:可以对成员属性进行初始化。

4.1.1构造方法分类

当一个类中,不存在任何形式的构造方法时,那么 JVM 会提供一个默认的无参数的构造方法。
构造方法分为
  1. 无参数的构造方法:隐式无参的构造方法、显示无参的构造方法。
  2. 有参数的构造方法,在调用时,需要传递数据,而且数据要和构造方法中参数的类型,个数、顺序必须完全匹配。
  3. 构造方法中的参数,有被称为形式参数 ( 形参 ) ,在调用这个构造方法时,传递的数据称为实际参数(实参 )。
  4. 在一个类中,可以同时拥有多个构造方法,只要构造方法之间的参数列表不同即可。

 示例:

public class Demo2{
 public Demo2(){ 
System.out.println("------无参数的构造方法------"); 
}
public Demo2(String name,int age){
 System.out.println("------有参数的构造方法----- name="+name+", age="+age); 
}
public Demo2(int a,int b){
 System.out.println("------有参数的构造方法----- a="+a+", b="+b); 
}
public static void main(String[]args){ 
Demo2 demo2=new Demo2("zhangsan",20); 
}
 }

 4.1.2方法

格式:

访问修饰符  返回值 (参数列表){

                //返回值

                return 返回值;//切记返回值只能有一个

}

 方法分为四种:

  1. 无返回值无参数
  2. 无返回值有参数
  3. 有返回值无参数
  4. 有返回值有参数

 命名格式:

//无返回值无参数

访问修饰符  void 方法名 (){
}
说明 : void 表示当前方法不会返回数据给调用方
//无返回值有参数
访问修饰符  void 方法名 ( 数据类型 参数 1, 数据类型 参数 2,...){
}
说明:
方法中的参数可以有多个,参数之间使用逗号分隔。
方法中的参数也称为形式参数 ( 形参 )
调用有参数的方法时,传递的数据称为实际参数 ( 实参 ) ,在传递数据时,必须和目标方法中参数的个数,类型,顺序完全一致。

//有返回值无参数

访问修饰符   返回值类型 方法名 (){
// 代码
// 返回值
return ;
}
说明:
返回值类型由返回值来决定的
带有返回值的方法的最后一句代码,一定是: return 返回值 ; 而且一次只能返回一个值。

 //有返回值有参数

[ 访问修饰符 ] 返回值类型 方法名 ( 参数列表 ){
// 最后一句代码
return 返回值 ;
}

 示例:

public class KE5 {
    //无返回值无参数
    public void Diaplay1(){
        System.out.println("=========无返回值无参数的普通方法===========");
    }
    //无返回值有参数
    public void Diaplay2(int a,double b){
        System.out.println("=========无返回值有参数====="+"a为:"+a+"b为:"+b);
    }
    //有返回值无参数
    public int Diaplay3(){
        System.out.println("=========有返回值无参数的普通方法=========");
        return  100+200;
    }
    //有返回值有参数
    public String Diaplay4(String name,int age,String ID){
        return "姓名为:"+name+"  年龄为:"+age+"  身份证号为:"+ID;
    }
    public static void main(String[]args){
        KE5 ke5=new KE5();
        ke5.Diaplay1();
        ke5.Diaplay2(800,400.12);
        System.out.println(ke5.Diaplay3());//还有一种输出格式
        int sum=ke5.Diaplay3();
        System.out.println(sum);
        System.out.println(ke5.Diaplay4("张三",24,"410522441233254"));
    }

注意:如果有返回值的话,return必须放在方法最后.

4.1.3代码执行顺序

  1. JavaSE 中, main 方法是程序的入口,所有普通的方法,都要在 main 方法中被调用才有机会得到运行;普通方法运行完毕后,再回到Main 方法,所以,程序从 Main 方法开始,也从 Main 方法结束。
  2. 普通方法之间的调用,直接写 方法名 ( 参数列表 ) 即可。

示例:

void text1(){
        System.out.println("text1开始执行");
        text2(500,600);
        System.out.println("text1执行结束");

    }
  void text2(double a1,double a2){
       System.out.println("text2开始执行");
       System.out.println(a1+a2);
       System.out.println("text2执行结束");


   }
 public static void main(String[]args){
        KE5 ke5=new KE5();
          ke5.text1();
        System.out.println("程序执行结束,拜拜喽 我要去玩喽");

    }

4.1.4this关键字

  1. 使用场景: this 关键字只能出现在没有被 static 修饰的方法中。
  2. 作用: this 关键字表示对当前类某个对象的引用(哪个对象调用这个方法, this 就指向谁)。

 用法:

  • 当方法中的局部变量或者参数和成员 ( 全局 ) 变量完全一致时,以局部变量或者参数为主 ( 就近原
    ) ;如果此时就想调用全局变量,则可以通过 this 关键字来解决,格式是: this. 属性名
  • this this( 参数列表 ) 的形式,出现在 构造方法的第一句代码时 ,就表示当前构造方法,调用
    了该类中其它的构造方法,可以通过 this 的参数列表来匹配。

示例:

public class KE6 {
    public static void main(String[] args) {
        KE6 ke6=new KE6();
        ke6.Display();
    }
    int num=999999;
   void  Display(){
        int num=44444;
        System.out.println("我是局部变量"+num);//要想输出全局变量的话  可以在num前面加上this关键字。
        System.out.println("我是全局变量"+this.num);
    }
    KE6 (){
       this("张三",25);
    }
    KE6(String name ,int age ){
        System.out.println("姓名为:"+name+"年龄为:"+age);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值