ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

第11天 构造器、创建对象内存分析、三大特征之封装、继承

2021-08-05 22:02:45  阅读:133  来源: 互联网

标签:11 name int age 创建对象 构造 public 三大 String


构造器详解

image-20210805143017983

package com.oop.Demo02;
//java----->class
public class Person {
    String name;
    int age;

    //实例化初始值
    //1.使用new关键字,本质实在调用构造器,必须要有构造器
    //2.用来初始化值

    public Person() {
    }

    //有参构造:一旦定义了有参构造,无参就必须显示定义

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //alt+insert
}

/*
    public static void main(String[] args) {
        //实例化一个对象
        Person person = new Person("kuangshen",23);
        System.out.println(person.name);//null

    }
--------------------------------------------------
    构造器
        1.和类名相同
        2.没有返回值
    作用:
        1.new 本质是调用构造器
        2.初始化对象的值
    注意点:
        1.定义有参构造之后,如果使用无参构造,
        显示的定义一个无参的构造
    快捷键:
        Alt  + insert
    this.*  =  参数传进来的值    
    
 */



3.创建对象内存分析

绘制内存分析图

public class Pet {
    public String name;
    public int age;
    //无参构造
    public void shout(){
        System.out.println("叫了一声!");
    }
}

/*
    public static void main(String[] args) {
        Pet dog = new Pet();
        dog.name="旺财";
        dog.age=3;
        dog.shout();

        System.out.println(dog.name);
        System.out.println(dog.age);

        Pet cat = new Pet();
        //面向对象06:创建对象内存分析
    }
 */

简单小结--类与对象

 public static void main(String[] args) {
    /*
    1.类与对象
        类是一个模板:抽象   对象是一个具体的实例
    2.方法
        定义、调用
    3.对象的引用
        引用类型:基本类型(8大基本类型)
        对象是通过引用来操作的:栈--->堆
    4.属性:字段Filed  或者成员变量
        默认初始化:
            数字:0  0.0
            char:u0000
            Boolean:false
            引用:  null
        修饰符   属性类型   属性名  =属性值;
    5.对象的创建和使用:
        -必须使用new关键字创建对象,必须使用构造器   Person kuangshen =new Person(); 
        -对象的属性  kuangshen.name;
        -对象的方法  kuangshen.sleep;
    6.类:
        静态的属性   ----属性
        动态的行为   ----方法
        
    下一步学习封装、继承、多态!!!!
     */
    }

提醒自己:总结下,前面基础必须掌握牢固,不然越欠越多,别放弃!加油!
  1. 面向对象的三大特征

封装

  • 该露的露,该藏的藏
    • 我们程序设计要求“高内聚,低耦合”
      • 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;
      • 低耦合就是仅暴漏少量的方法给外部使用
  • 封装(数据的隐藏)
    • 通常,应禁止直接访问一个对象中的数据的实际表示,而应通过操作接口来访问,这成为信息隐藏
  • 记住这句话就够了:属性私有 get/set
package com.oop.Demo04;
//类 private:私有
public class Studernt {
    //属性私有

    private String name;    //名字
    private int id;    //学号
    private char sex;    //性别
    private int age;

    //提供一些可以操作这个属性的方法
    //必须提供一些public的get  set方法

    //get 获得这个数据或属性
    public String getName(){
        return this.name;
    }
    //set 给这个数据设置值
    public void setName(String name){
        this.name = name;
    }
    //快捷键  Alt+Insert  也可以自动生成get set

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        if (age>120||age<0){
            this.age = 3;
        }else {
            this.age = age;
        }
    }
}

/*
1.提高程序的安全性,保护数据
2.隐藏代码实现细节
3.统一接口
4.系统可维护性增加
 */

/*
public class Application {
    public static void main(String[] args) {
        Studernt s1 = new Studernt();
        s1.setName("秦始皇");

        System.out.println(s1.getName());

        s1.setAge(999);//不合法的
        System.out.println(s1.getAge());
    }
}
 */


继承

  • 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
  • extends的意思是“扩展”,子类是父类的扩展。
  • java中类只有单继承,没有多继承!一个儿子只能有一个爸爸吧,但一个爸爸可以有多个儿子
  • 继承是类和类之间的一种关系,除此之外,类和类之家的关系还有依赖、组合、聚合等
  • 继承关系的两个类,一个为子类(派生类),一个是父类(基类)。子类继承父类,使用关键字extends来表示。
  • 子类和父类之间,从意义上将应该具有“is a“的关系
  • object类
  • super
  • 方法重写
opp.demo05中的person----> teacher  
    			   ----> student

标签:11,name,int,age,创建对象,构造,public,三大,String
来源: https://www.cnblogs.com/ariesmark/p/15106224.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有