zoukankan      html  css  js  c++  java
  • 面向对象

    1.什么是类, 什么是对象?

      对象是类的一种实例化, 对象用"属性"和"方法"来对应描述事物所具有的"静态属性"和"动态属性"

      类是用于描述同一类形的对象的一个抽象的概念, 类中定义了这一类对象应该具有的"静态属性"和"动态属性"

      类可以看成是一类对象的模板, 对象可以看成该类的一个具体实例

      什么是类
        学生是类, 瓶子是类, 老师是类
      什么是对象
        这个学生是对象, 这个瓶子是对象, 这个老师是对象, 符合这类事物的特征的某一个东西, 叫对象

      职工:合适的方法出现在合适的类里

        静态属性:

          姓名: 张三
          年龄: 24
          工资: 3000
        动态属性:
          显示姓名
          显示年龄
          修改姓名
          领取工资

    2.类与类之间的关系

      关联关系(最弱的一种关系):
        A类中某个方法的参数是B类的某一个对象
          举个例子(学生<--学校-->老师)
          老师要讲课, 这是一个方法, 要传个参数进去, 参数是学生对象
      继承关系(避免多重继承)
        什么是一种什么
          举个例子(运动员-->球类运动员-->篮球运动员)
      聚合关系(聚集, 组合)
        什么是什么的一部分
          举个例子(球队-->(王队长, 队员))
          组合----人: 头, 身体

        聚集:构成这个类的这部分可以是这个类的, 也可以是另外一个类的,
        组合:每一部分只属于一个类
      实现关系
        抽象类
        接口:只管定义方法, 怎么实现由子类去做
          举个栗子(接口(开车的方法), A类可以实现, B类也可以实现)

    3.java类的定义, 对象和引用

      定义一个类
        public class 类名{
          成员变量
          方法
        }

      类名 标识符 = new 类名();  //对类的实例化
      标识符.方法();
      标识符.属性;

      

    package com.hanqi.maya.mldel;
    
    import java.util.Date;
    
    public class Person {
        public String name;        //属性
        public String sex;         //属性
        public int age;            //属性
        public Date birthday;    //属性
        
        public String showName(){           //方法
            System.out.println(name);
            return name;
        }
        public String showSex(){           //方法
            System.out.println(sex);
            return sex;
        }
        public int showAge(){              //方法
            System.out.println(age);
            return age;
        }
        public Date showBirthDay(){       //方法
            System.out.println(birthday);
            return birthday;
        }
        
    }
    package com.hanqi.maya.text;
    
    import java.util.Date;
    
    import com.hanqi.maya.mldel.Person;
    
    public class Main {
        //主方法/main函数/main方法
        public static void main(String[] args) {
            Person person = new Person(); //实例化
            
            person.name = "张三";         //赋值
            person.age = 28;              //赋值
            person.sex = "男";            //赋值
            person.birthday = new Date(); //赋值
            
            person.showName();      //调用方法
            person.showSex();        //调用方法
            person.showAge();        //调用方法
            person.showBirthDay();  //调用方法
    
        }
    }

    4.局部变量,必须赋值

    package com.hanqi.maya.text;
    
    import java.util.Date;
    
    import com.hanqi.maya.mldel.Person;
    
    public class Main {
        //主方法/main函数/main方法
        public static void main(String[] args) {
            
            int a = 5;    //局部变量,必须要把局部变量赋值
            System.out.println(a);
        }
    }

    5.成员变量,Java里面会自动赋值

    package com.hanqi.maya.mldel;
    
    import java.util.Date;
    
    public class Person {
        //属性,成员变量
        public String name;        //属性
        public boolean sex;
        public int age;
        public Date birthday;
        
        
        public String showName(){           //方法;   带返回值的
            System.out.println(name);
            return name;
        }
        
        public void showAllInfo(){     //showAllInfo  打印所有的信息;void 不带返回值的
            System.out.println(name);
            System.out.println(sex);
            System.out.println(age);
            System.out.println(birthday);
        }
        
    }
    package com.hanqi.maya.text;
    
    import java.util.Date;
    
    import com.hanqi.maya.mldel.Person;
    
    public class Main {
        //主方法/main函数/main方法
        public static void main(String[] args) {
            Person person = new Person(); //实例化
            person.showAllInfo();
            
        }
    }

    6.构造方法

    package com.hanqi.maya.model;
    
    public class Person {
        public String name;
        
        public Person(){   //空的构造方法
            
        }
        
        public Person(String _name){
            name = _name;
        }
        
        public String showNmae(){
            System.out.println(name);
            return name;
        }
    }
    package com.hanqi.maya.text;
    import com.hanqi.maya.model.Person;
    
    public class Main {
        
        public static void main(String[] args) {
            
            Person p = new Person("张三2");
            p.showNmae();
        }
    }

    package com.hanqi.maya.model;
    
    public class Person {
        public String name;
        
        public Person(){   //空的构造方法
            
        }
        
        public Person(String _name){
            System.out.println("调用person类的构造方法!");
            name = _name;
        }
        
        public String showNmae(){
            System.out.println(name);
            return name;
        }
    }
    package com.hanqi.maya.text;
    import com.hanqi.maya.model.Person;
    
    public class Main {
        
        public static void main(String[] args) {
            
            Person p = new Person("张三");
            
        }
    }

    举例:车行驶公里数

    package com.hanqi.maya.mldel;
    
    public class Car {
        //成员变量
        public String pinpai;
        public String chexing;
        public double price;
        public int yh;
        public double lc;
        public int yxrj;//油箱容积
        public int syyl;//剩余油量
        
        public Car(){   //空参构造方法
            
        }
        
        public Car(String _pinpai,String _chexing,double _price,int _yh,int _yxrj){
            //带参数的构造方法
            pinpai = _pinpai;
            chexing = _chexing;
            price = _price;
            yh = _yh;
            lc = 0;
            yxrj=_yxrj;
            syyl=_yxrj - 1;
        }
        
        public void run(double gonglishu){
            //不带返回值的的成员方法
            double d =(gonglishu/100) * yh;
            syyl = (int) (syyl - d);
            System.out.println("行驶" + gonglishu + "公里,共消耗"+ d + "L汽油");
        }
        
        public void showInfo(){
            //不带返回值的的成员方法
            System.out.println("品牌:"+ pinpai);
            System.out.println("车型:"+ chexing);
            System.out.println("价格:"+ price);
            System.out.println("油耗:"+ yh+"L/百公里");
            System.out.println("总里程数:"+ lc);
            System.out.println("油箱容积:"+yxrj+"L");
            System.out.println("剩余油量"+syyl+"L");
            System.out.println("====================");
            
        }
    }
    package com.hanqi.maya.text;
    
    import com.hanqi.maya.mldel.Car;
    
    public class MainCar {
        public static void main(String[] args){
            Car car = new Car("起亚","K5",15.88,10,60);
            car.showInfo();
            car.run(130);
            car.showInfo();
        }
    }

  • 相关阅读:
    cliconfg
    SQL 校验身份证格式
    常用MIME类型汇总
    SqlBulkCopy批量将Excel(Aspose)数据导入至SQL Server
    C#生成图片验证码
    SqlServer PIVOT函数快速实现行转列,UNPIVOT实现列转行
    SQL Server 中 EXEC 与 SP_EXECUTESQL 的区别
    C#常用加密方式
    CURSOR 游标使用示例
    linux命令
  • 原文地址:https://www.cnblogs.com/sutao/p/7197651.html
Copyright © 2011-2022 走看看