从头学java-7 面向对象

面向对象 oop

初识面向对象

  • 属性+方法=类
  • 对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象来分析整个系统。但是,具体到微观操作,让然需要面向过程的思路去处理。
  • 面向对象本质就是:以类的方式组织代码,以对象的组织(封装)数据。
  • 从认识论角度考虑是先有对象后有类
  • 三大特性:封装,继承,多态。抽象
package com.chen.oop.demo1;

public class Demo1 {
    //Demo1类
    public static void main(String[] args) {
        //main方法
        

    }
   /*
   * 修饰符   返回值类型 方法名(....){
   * //方法体
   * return 返回值;
   *
   * }
    */
    public String hello(){
        return "你好,婵月";
    }
     public String hello(){
        return ;//结方法,返回一个结果
    }
    public int max(int a,int b){
        return a>b?a:b;//三元运算符
    }
}

//主函数
package com.chen.oop.demo1;

public class Application {
    public static void main(String[] args) {
       Application application= new Application();
       Demo1 demo1=new Demo1();//实例化demo1对象,调用Demo1类中的方法
       demo1.hello();
       System.out.println(demo1.hello());
       int x= demo1.max(56,25);
        System.out.println(x);

    }
}

break:跳出switch循环,结束循环。continue:结束依次循环。return:方法结束,返回类型和返回值相同。

方法名:见名知意,驼峰命名法。参数列表:(参数类型,参数名),…可变参数,数组运用可变参数。

package com.chen.oop.demo1;

public class Student {
    
    public String say(){//非静态方法
        return "学生说话";
    }
    public static String say(String name){//非静态方法,name为形式参数
        return  name+"同学说话";
    }
    //和类一起加载
    public static void a(){
        
    }
    //类实例化后才会存在
    public void b(){
        
    }
}
package com.chen.oop.demo1;

public class Demo2 {
    public static void main(String[] args) {
        // 调用非静态方法
        //实例化这个类 new
        //对象类型 对象名 =对象值;
        Student student=new Student() ;
       String a= student.say(); //调用非静态方法
        System.out.println(a);

        // _________________________________________
            //类名.方法名
        System.out.println(Student.say("征"));//征为实参

    }
}

package com.chen.oop.demo1;
//引用传递:对象,本质还是值传递
public class Demo3 {
    public static void  main(String[] args) {
        Perosn person =new Perosn();
        System.out.println(person.name);//null
        Demo3.change(person);
        System.out.println(person.name);//sd


    }
    public static void  change(Perosn perosn ){
        perosn.name="sd";
    }

}
class Perosn{//定义一个类,有个属性name
    String name;
}
  • 基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的
  • 对象作为参数传递时,是对象在内存中的地址拷贝一份给了参数

类和对象的关系

  • 类是一种冲向的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物
  • 对象是抽象概念的具体实例

创建和初始化对象

  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及类中构造器的使用

1595485938430

  • 一个类即使什么都不写,它也会存在一个方法

  • 构造器:

    • 和类名相同
    • 没有返回值
  • 核心作用:

    • 使用new关键字,本质是在调用构造器
    • 构造器同来初始化值
  • 在无参构造器中,无参构造器可以实例化初始值

    1595486615687

  • 注意点:

    • 有参构造器:一旦定义了有参构造,无参就必须显示定义
    • Alt+Insert

1595487183165

img

在这里插入图片描述

小结 类与对象

1.类与对象

类是一个模板:抽象,对象是一个具体的实例

2.方法

定义,通用

3.对应的引用

引用类型:基本类型(8)

对象是通过引用来操作的:栈—>堆

4.属性:字段Field成员变量

默认初始化:

数字:0 0.0

char:u0000

boolean:false

引用:null

修饰符 属性类型 属性名=属性值;

5.对象的创建和使用

必须使用new关键字创建对象,构造器Person xiaoming=new Perosn();

对象的属性 xiaoming.name

对象的方法 xiaoming.sleep()

6.类

静态的属性 属性

0.0

char:u0000

boolean:false

引用:null

修饰符 属性类型 属性名=属性值;

5.对象的创建和使用

必须使用new关键字创建对象,构造器Person xiaoming=new Perosn();

对象的属性 xiaoming.name

对象的方法 xiaoming.sleep()

6.类

静态的属性 属性

动态的行为 方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值