面向对象1

Java基础-面向对象Part1

目标

  1. 什么是对象
  2. 对象的特征
  3. 对象与类的关系
  4. 如何定义一个类
  5. 对象如何创建
  6. 如何调用对象的方法
  7. this的用法
  8. 基本引用类型与引用类型参数传递的区别

什么是对象

万物都是对象

对象和类的关系

  • 类是具有共同属性和行为的对象的抽象

  • 类也被称为模板,提供了对象的基本框架

  • 对象是根据类创造出来的实物

    例如 定义一个人的类,属性包括年龄、性别,方法(行为)包括吃饭、睡觉

    package javalearning.kkb7oob2;
    
    /**
     * @author chenxu
     * @date 2020/10/19 - 17:35
     */
    public class Person {
       String name =19;
       String sex=male;
       int age=99;
       public void eat(){
          System.out,println("nice fodd");
       }
       pbulic void sleep(){
          System,out,println("good night");
       }
       public static void main(String []args){
          Person person = new Person();
          person.eat();
       }
       
       
       
    }
    
    1. 类中属性和方法是同一级别的
    2. 类体中不能出现可执行语句

对象如何创建以及如何调用对象的方法

  1. 声明对象
  2. 创建对象
  3. 使用对象
package javalearning.kkb7oob2;

/**
 * @author chenxu
 * @date 2020/10/19 - 20:18
 */
public class Car{
    String color;
    public void start(){
        System.out.println("gogoogogoogo");

    }
    public static void main(String []args){
        Car c;//声明对象 类名+ 对象名
        c= new Car();//创建对象
//或者 Car c = new Car();
//使用对象
        c.color = "blue";//操作对象的属性
        c.start();//调用对象的方法

    }


}

构造方法

构造方法是一种特殊的方法,他是一个与类同名的方法,对象的创建是通过构造方法完成创建的,当类实例化一个对象时,会自动调用构造方法,它也可以重载

种类

  • 无参构造
  • 有参构造

作用

  • 初始化对象

只有在创建对象的时候才会被调用,无法随意调用

  • 初始化数据

可以吧

声明格式

方法名与类型相同,无返回值类型,void也无

格式:

修饰符 类名(参数列表){  }
例如:
public class car{
	public car( ){
	
	}

}

package javalearning.kkb7oob2;

/**
 * @author chenxu
 * @date 2020/10/19 - 17:53
 */
public class Person2 {


    String name;
    int age;
    String sex;
    public Person2(){

        System.out.println("Person2.Person2");
    }
    public Person2(String name ,int age,String sex){
        //通过形参给成员变量赋值
    this.name = name;
    this.age = age;
    this.sex = sex;

    }

    public static void main(String[] args) {
        Person2 bb = new Person2("王二纳兹",19,"女");

        System.out.println(bb.sex+bb.name+bb.age);

    }

}

this的三种用法***

  • 表示对当前对象的引用 / /在构造函数中代指当前对象

  • 表示用类的成员变量,而非函数参数

  • 用于在构造方法中代指本类中其他构造方法,并且必须把this放在第一行

  • this不能用在静态方法中 static

package javalearning.kkb7oob2;

/**
 * @author chenxu
 * @date 2020/10/19 - 18:03
 */
public class Person4 {
    //this作用3:在构造方法中代指本类中其他构造方法,如果其他方法为有参则this(参数1,,,,,,)若无则为this()
    //只有在调用构造方法的时候this在第一行,其他this行数无所谓
    //假如A构造方法调用B构造,那么B不能在调用A构造

    String name;
    int age;
    String sex;

    public Person4(String name, int age, String sex){
       /*无法区分 成员变量和局部变量
       name = name;
        age  = age;
        sex = sex;*/
       //this关键字  this.变量名
        this.name = name;
        this.age  = age;
        this.sex = sex;
    }
    public Person4(){
        this("hh",18,"male");
    }


    public static void main(String[] args) {

    Person4 p4 = new Person4();//即使此处调用的是无参构造,但是无参构造中使用this(参数);调用了本类中其他构造方法完成了有参构造
        System.out.println(p4.age);//调用的是无参构造,但是无参构造中this又代指了本类中的有参构造

    }
}

基本数据类型的参数传递

基本数据类型当实参传递时注意,他传递的是值,而不是变量本身

public class Changenum{
	public void change(int x){
	x=100;
	}
	public statci void main(String []args){
	Changenum changenum = new Changenum();
	int x = 200;
	changemum.change(x);
	System.out.println(x);
	}

//此时输出的x为200,因为int x 等于200,change(x)只是将200 数据传递给成员方法,然而print中的x和成员方法中的x并非是同一个东西

}

引用类型数据传递

传递的是对象本身

package javalearning.kkb7oob2;

/**
 * @author chenxu
 * @date 2020/10/19 - 19:45
 */
public class Changenum2 {
    int x;


    public void Change(Changenum2 c){
        c.x=1;
    }

    public static void main(String[] args) {
        Changenum2 cm2 = new Changenum2();
        cm2.x=100;
        cm2.Change(cm2);
        System.out.println(cm2.x);
//输出的是1
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值