zoukankan      html  css  js  c++  java
  • Java第7次作业:造人类(用private封装,用static关键字自己造重载输出方法)什么是面向对象程序设计?什么是类和对象?什么是无参有参构造方法 ?什么是封装?

    什么是面向对象程序设计?

    我们称为OOP(Object  Oriented  Programming)

    就是非结构化的程序设计

    要使用类和对象的方法来进行编程

    什么是类,什么是对象

    类就是封装了属性和行为的一段程序,实现特定的功能。行为就是指方法,就是函数。什么是属性,就是自定义的字段,也就是定义的变量。

    什么对象?

    对象就是类的实例。

    什么是封装?

    隐藏属性实现细节,对外提供访问方式。即私有化属性,公有化提供属性的方法。

    封装的作用?

    避免直接访问属性造成出错或不确定性。

    package com.swift;
    
    public class Person {
        public int id;
        public String name;
        public int age;
        public String city;
        public String introduce() {
            return "My id=" + id + ", name=" + name + ", age=" + age + ", city=" + city ;
        }  
    }
    package com.swift;
    
    public class DemoPerson {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Person p1=new Person();
            Person p2=new Person();
            Person p3=new Person();
            Person p4=new Person();
            p1.id=110001;
            p1.name="刘备";
            p1.age=43;
            p1.city="蜀国";
            p2.id=110002;
            p2.name="关羽";
            p2.age=35;
            p2.city="蜀国";
            p3.id=110003;
            p3.name="张飞";
            p3.age=32;
            p3.city="蜀国";
            p4.id=110004;
            p4.name="诸葛亮";
            p4.age=25;
            p4.city="蜀国";
            System.out.println(p1.introduce());
            System.out.println(p2.introduce());
            System.out.println(p3.introduce());
            System.out.println(p4.introduce());
            
        }
    
    }

     构造方法的使用

    什么是构造方法,和类的名字完全一致的方法称为构造方法,作用是对象的初始化

        //构造方法
        public Person() {
            
        }
        //有参数构造
        public Person(int id,String name,int age,String city) {//形式参数,接收实参
            this.id=id; //this关键字,表达的含义是当前对象 .表示当前对象的某个调用
            this.name=name;
            this.age=age;
            this.city=city;
        }

    this关键字作用是什么?

    this关键字,表达的含义是当前对象,谁调用这个属性或方法就指的是那个对象 .表示当前对象的某个调用

    public关键字的作用是什么?

    表示访问的权限,public 的权限是最高的,也就是在类的内部或者外部谁都可以正常访问

    private 关键字的作用是什么?

    当属性全部私有化之后,在外部访问类中的属性,安全了,但是,不能访问了。

    什么是封装?

    把属性或着是方法私有化,外界无法直接访问。

    如何解决这个问题?

    使用setter方法和getter方法,把他们设置成public的,就可以解决了

    static关键字?

    静态的

    为什么在main()方法中调用方法必须要在方法前加static ?
    静态的方法只能调用静态的方法。
    为什么静态方法只能调用静态方法?

    类和静态的属性和方法放在内存中的方法区,生命周期在类的整个延续过程中。

    而非静态的属性方法,生命周期短暂,只有在调用的时候调入内存中的栈空间,当执行结束,生命终止。

    package com.swift;
    
    public class DemoPerson {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Person p1=new Person(110001,"刘备",43,"北京");//这叫实际参数,实参
            Person p2=new Person(110002,"关羽",35,"上海");
            Person p3=new Person(110003,"张飞",25,"广州");
            Person p4=new Person(110004,"诸葛亮",20,"茅庐");
            p1.setName("刘贝贝");
            shuchu(p1.getName());
            shuchu(p2.getName());
            shuchu(p3.getName());
            shuchu(p4.getName());
        }
        public static void shuchu(String what) {
            System.out.println(what);
        }
    
    }

    private static int id;

    在类中把字段,也就是属性修改为static关键字的,有什么不同。

    package com.swift;
    
    public class DemoPerson {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Person p1=new Person(110001,"刘备",43,"北京");//这叫实际参数,实参
            Person p2=new Person(110002,"关羽",35,"上海");
            Person p3=new Person(110003,"张飞",25,"广州");
            Person p4=new Person(110004,"诸葛亮",20,"茅庐");
            p1.setName("刘贝贝");
            shuchu(p1.getName());
            shuchu(p2.getName());
            shuchu(p3.getName());
            shuchu(p4.getName());
            shuchu(p1.introduce());
            //id是Static静态的属性 静态的属性和方法,可以通过类名.的方式直接调用 
            shuchu(Person.id);
        }
        //方法的重载 参数的类型不同,参数的数量不同,参数的位置不同
        public static void shuchu(int id) {
            System.out.println(id);
        }
        public static void shuchu(String what) {
            System.out.println(what);
        }
        //各种工具类的使用时,其实都是用的静态方法和属性
        //如何求4的开方,要是用数学工具类Math
        int a=(int) Math.sqrt(4);
        //如鹏游戏引擎的使用
        //GameCore.setbgview
        //如果你想使用类和对象内的数据,有两种方法,一种方法,是把类实例化,生成对象,通过对象.进行调用,这种调用的特点是
        //非静态可以直接调用
        //调用数据和方法的第二种是,使用类名直接调用
        //Position X,Y
        //Position.X Position.y //这种方法调用前提是你的属性和方法时静态的
    
    }


  • 相关阅读:
    [Unity3D]计时器/Timer
    unity缓存和浏览器缓存
    unity3d进行脚本资源打包加载
    Unity3d删除无用的美术资源
    项目经理的职责(转载)
    LINQ
    生意经
    Android ListView标题置顶效果实现
    ListView的自动循环滚动显示
    郭霖的专栏
  • 原文地址:https://www.cnblogs.com/qingyundian/p/7716713.html
Copyright © 2011-2022 走看看