JAVA基础 类与对象(1)

JAVA基础 类与对象(1)

1.引用

1.1 一个引用指向一个对象
引用的概念,如果一个变量的类型是 类类型,而非基本类型,那么该变量又叫做引用。
在这里插入图片描述

public class JAVA_basic_code11 {
    public static class Person{
        private String name;
        Person(){};
    }
    public static  void main(String args[]){
//        Person,又叫做引用
//         =的意思指的h这个引用代表右侧创建的对象
//        “代表” 在面向对象里,又叫做“指向”
     Person stephen=new Person();
    }
}

1.2 一个对象 多个引用
对象只有一个,引用有多个,引用2通过指向引用1,间接访问对象
在这里插入图片描述

public class JAVA_basic_code11 {
    public static class Person{
        private String name;
        Person(){};
    }
    public static  void main(String args[]){
//        Person,又叫做引用
//         =的意思指的h这个引用代表右侧创建的对象
//        “代表” 在面向对象里,又叫做“指向”
     Person stephen=new Person();

     //s1指向stephen,s2指向s1
     Person s1=stephen;
     Person s2=s1;
    }
}

1.3一个引用,多个对象
在这里插入图片描述

public class JAVA_basic_code11 {
    public static class Person{
        private String name;
        Person(){};
    }
    public static  void main(String args[]){
//        Person,又叫做引用
//         =的意思指的h这个引用代表右侧创建的对象
//        “代表” 在面向对象里,又叫做“指向”
         Person stephen=new Person();//指向对象1
         stephen=new Person();//指向对象2
         }
  }       

2.继承
有两个类,一个类是人,一个是学生。
现在用两种方式创建类,第一种是不继承,第二种是继承。

第一种方式

public class JAVA_basic_code11 {
    public static class Person{
        private String name;
        Person(){};
    }
    
   public static  class Student{
        private String classname;
        Student(){};
   }


    public static  void main(String args[]){
//        Person,又叫做引用
//         =的意思指的h这个引用代表右侧创建的对象
//        “代表” 在面向对象里,又叫做“指向”
         Person stephen=new Person();//指向对象1
         Student student=new Student();//指向学生对象
         }
 }        

第二种方式
学生类继承Person类,多了一个班级名称的属性

public class JAVA_basic_code11 {
    public static class Person{
    //如果是private,无法直接赋值
         String name;
        Person(){};
    }
 //Student继承Person
   public static  class Student extends  Person{
         String classname;
        Student(){};
   }

    public static  void main(String args[]){
//        Person,又叫做引用
//         =的意思指的h这个引用代表右侧创建的对象
//        “代表” 在面向对象里,又叫做“指向”
         Person stephen=new Person();//指向对象1
         Student student=new Student();//指向学生对象
         student.name="yzs";
         student.classname="软件1班";
         System.out.println(student.name);//结果是yzs
         }
    }     

练习
设计一个类Armor护甲
继承Item类,并且额外提供一个属性ac: 护甲等级 int类型

实例化出两件护甲
名称 价格 护甲等级
布甲 300 15
锁子甲 500 40

public class JAVA_basic_code12 {
//物体类item
   static  class item{
        String name;
        double price;
       item(String  name,double price){
         this.name=name;
         this.price=price;
       };



   }
   //Armor类
   static class Armor extends item{
         int rank;
       Armor(String name,double price,int rank){
           super(name,price);//父类的构造函数
           this.rank=rank;
       }

   }
    public static  void main(String args[]){
    //创建两个Armor对象
        Armor armor1=new Armor("布甲",300,15);
        Armor armor2=new Armor("锁子甲",500,40);
        System.out.println(armor1.name+" "+" "+armor1.price+" "+armor1.rank);
        System.out.println(armor2.name+" "+" "+armor2.price+" "+armor2.rank);
    }
}

3.方法的重载
方法的重载指的是方法名一样,但是参数类型不一样

public class JAVA_basic_code13 {
    //attack方法重写
    static  void sayhello(String a){
        System.out.println(a+"sathello");
    }

    static  void sayhello(String a,String b){
     System.out.println(a+"and"+b+"sayhello");
    }
    public  static  void main(String args[]){
        //同一个方法名,不同的参数
     sayhello("张三");
     sayhello("张三","李四");
    }
}

4.构造方法
4.1什么是构造方法
方法名和类名一样(包括大小写)
没有返回类型
实例化一个对象的时候,必然调用构造方法
4.2无参的构造方法
无参的构造方法,如果不写,就会默认提供一个

public class JAVA_basic_code13 {
    class Student{
        //名字和类名一样,没有返回类型的方法
        Student(){}
    }
  }  

4.3有参数的构造方法

public class JAVA_basic_code13 {
    class Student{
        private String name;
        private char gender;
        private int age;
        //名字和类名一样,没有返回类型的方法
        Student(){}
        //带参数的构造方法
        Student(String name,char gender,int age){
            this.name=name;
            this.gender=gender;
            this.age=age;
        }
        
    }
 }   

5.this关键字
5.1
this这个关键字,相当于普通话里的“我”
小明说 “我吃了” 这个时候,“我” 代表小明
小红说 “我吃了” 这个时候,“我” 代表小红
"我"代表当前人物
this这个关键字,相当于普通话里的“我”
this即代表当前对象
5.2
如果要在一个构造方法中,调用另一个构造方法,可以使用this()

public class JAVA_basic_code13 {
static  class Hero {
    String name; //姓名
    float hp; //血量
    float armor; //护甲
    int moveSpeed; //移动速度
    //带一个参数的构造方法
    public Hero(String name) {
        System.out.println("一个参数的构造方法");
        this.name = name;
    }

    //带两个参数的构造方法
    public Hero(String name, float hp) {
        this(name);//用this()调用其他的构造方法
        System.out.println("两个参数的构造方法");
        this.hp = hp;
    }
}
    public static void main(String[] args) {
        Hero teemo =  new Hero("提莫",383);

        System.out.println(teemo.name);
       }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值