java基础学习之this,类变量,三大特征

    xiaoxiao2026-09-12  4

    this代表对象的实例

    public class demo{

    public static void main(String  []args)

    {

    Dog dog1=new Dog();

    Person p1=new Person(dog1,23,"小刚");

    p1.showInfo();

    }

    }

    class Person 

    {

    int age;

    String name;

    Dog dog;

    public Person(Dog dog,int age,String name){

    this.dog=dog;

    this.age=age;

    this.name=name

    }

    }

    \\\\\\\\\\\\\\\\\\\\\\\\\\\\

    class Dog{

    String name;

    }

    =================================================

    统计总共实例化了多少个对象

    static

    class Child{

    int age;

    String name;

    static int total=0;

    public Child(int age,String name)

    {

    this.age=age;

    this.name=name;

    }

    public void joinGame()

    {

    total++;

    }

    }

    访问的时候可以使用任何一个对象  如child1.total 也可以使用child.total   

    类变量

    访问修饰符 static 数据类型 名称

    访问变量  类.变量名 对象.变量名

    public class Demo3_2{

    static int i=1;

    static

    {

    i++;//该静态区域,只执行一次,无论实例化与否

    }

    public Demo3_2(){

    i++

    }

    public static void main(String []args){

    Demo3_2 t1=new Demo3_2();

    System.out.println(t1.i);

    Demo3_2 t2=new Demo3_2();

    System.out.println(t2.i);

    }

    }

    //打印结果是3   4

    ========================================================

    类方法

    class Stu

    {

    int age;

    String name;

    int fee;

    Static int totalFee;

    public Stu(int age,String name,int fee){

    this.age=age;

    this.name=name;

    totalFee+=fee;

    }

    public static int getTotalFee()//这是类方法,静态方法

    {

    return totalFee;

    }

    }

    静态方法只能访问静态变量 ,不能访问非静态变量

    =================================================

    面对对象的几大特征,封装继承,多态(对象的多种状态),抽象

    修饰符有public,protect,默认,private

    包的作用

    区分相同名字的类

    当类很多时,可以很好管理

    控制访问范围

    =================================

    类的继承

    除了private外,其他的都能被子类继承,java不能多重继承,c++可以

    package qgm; public class demo1 { public static void main(String[] args) { // TODO 自动生成的方法存根 } } //将学生的共同属性抽象出来,做一个父类 class Student { public int age; public String name; public float fee; //交学费 public void pay(float fee) { this.fee=fee; } } //小学生 class Pupil extends Student { //交学费 public void pay(float fee) { this.fee=fee; } } //中学生 class MidStu extends Student { //交学费 public void pay(float fee) { this.fee=fee*0.5f; } } //大学生 class ColStu extends Student { //交学费 public void pay(float fee) { this.fee=fee*0.1f; } }

    ============================================ 方法重载,在类中,同样的方法名,调用时取决于方法参数类型,个数,不一样 只是返回类型不一样,不能构成重载。如果只是控制访问符不一样,也不能构成重载 方法的覆盖-----重写 就是子类重写父类的方法 抽象类 abstract   class Animal{ int age; String name; abstract public void cry(); } //当一个类的父类是抽象类时,需要把抽象类的抽象方法实现 class Cat extends Animal{ public void cry(){ } } //抽象类是不能实例化的,无论是否有抽象方法 抽象方法不能有主题 ================================== 接口 当一个类实现了接口,那就必须把该接口的方法都实现了 原则:接口不能被实例化,和抽象函数一样 接口方法不能有主体也不能有实现的方法,但是抽象类可以有实现的方法。 一个类可以实现多个接口 接口中可以右变量,但是不能用protect,private等修饰符,本质是static,而且还是final。可以作为全局变量使用,使用方法是 接口名.变量名 一个接口不能继承类,但是可以继承其他的类 /**  *   */ package com.test; /**  * @author Administrator  *  */ public class Test { /** * @param args */ public static void main(String[] args) { // TODO 自动生成的方法存根 Computer computer=new Computer(); Camera camera1=new Camera(); computer.useUsb(camera1); } } interface Usb{ public void start(); public void stop(); } class Camera implements Usb{ public void start(){ }; public void stop(){ }; } class Computer{ //直接使用接口 public void useUsb(Usb usb){ usb.start(); usb.stop(); } } ========================================================== 多态:一个引用在不同情况下的多种状态 继承和实现接口都能构成多态 /**  *   */ package com.test; /**  * @author Administrator  *  */ public class Test { /**  * @param args  */ public static void main(String[] args) { // TODO 自动生成的方法存根 Animal an =new Cat(); an.cry(); an=new Dog(); an.cry(); } } class Animal{  String name;  int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void cry() { System.out.println("动物叫"); } } class Dog extends Animal { public void cry() { System.out.println("旺旺"); } } class Cat extends Animal { public void cry() { System.out.println("喵喵"); } } ============================================
    转载请注明原文地址: https://ju.6miu.com/read-1311996.html
    最新回复(0)