Day6.7 数组工具类,面向对象,封装

jdk提供了数组的工具类Arrays

package cn.tude.review;
/*
本类用来测试Arrays工具类
 */
import java.util.Arrays;

public class TestArray {
    public static void main(String[] args) {
        int from[] = {1, 2, 3, 4, 5};
        int[] two = Arrays.copyOf(from, 5);
        //souf输出快捷键 ctrl+alt+l整理代码快捷键
        System.out.printf(Arrays.toString(two));
        //Arrays快捷复制数组 形参(要复制的数组的名字,新数组长度);
        int[] ints = Arrays.copyOf(from, 10);
        //

        //Arrays快捷复制数组 形参(要复制的数组的名字,新数组长度);
        System.out.println(Arrays.toString(ints));
        int[] to2 = Arrays.copyOf(from, 3);
        System.out.println(Arrays.toString(to2));
        //这个方法时指定数组下标 复制左闭右开 含头不含尾[2,4)
        int[] ints1 = Arrays.copyOfRange(from, 2, 4);
        System.out.println(Arrays.toString(ints1));

    }
}

面向对象 

1.面向对象是将具体事物抽象成类,由亲力亲为转变成为指挥者,简称为oop

2.面向对象的三大特征   封装  继承  多态

 

 

3.创建对象时内存究竟经历了什么

    3.1声明类类型的变量,变量存储在栈中

   3.2当new对象时  变量在堆内存中开辟空间

  3.3.完成对象的初始化,并赋予默认值

  3.4给初始化完成的对象赋予唯一的地址值

  3.5将对象在堆内存空间的地址值交由类类型的变量存储

tips:变量p中存放的是对象在堆内存中的唯一地址值

编程思路 

1.抽象信息,封装成一个类,相当于设计图纸

2.特征-------属性--------相当于成员变量

3.行为--------方法---------用方法来描述

tips:同一个类创建的不同对象他们之间没有任何联系,并不相互影响

创建对象Demo

package cn.tude.oop;

import com.sun.xml.internal.ws.org.objectweb.asm.ClassAdapter;

/*
本类用于初步学习面向对象
 */
//分析手机这类实物有什么特点 用类来描述
//特征 品牌 价格 颜色 尺寸
//行为 打电话 发微信  看直播
/*
一个java文件可以创建多个class 但是只能有一个类被public修饰  而且这个公共类必须与文件名字一致
 */
//基本数据结构
/*
栈和队列
    栈先进后出 phone 将放在栈中 会出现压栈 存储成员变量方法
 队列
    先进先出
 */
public class TestCreateClass {
    //main方法可以重载
    public static void main(String[] args) {
        //4在公共类中创建一个程序入口main函数
        //5创建Phone对象phone1
        Phone phone1 = new Phone();
        //6.通过“.”来调用对象方法    ctrl +d 快速向下复制
        phone1.call();
        phone1.learn();
        phone1.meessage();
        //7.调用属性
        System.out.println(phone1.brand);
        System.out.println(phone1.color);
        System.out.println(phone1.price);
        System.out.println(phone1.size);
        //8.创建手机类对象p2
        Phone phone = new Phone();

        //9.修改p2对象的属性值
        phone.brand = "谷歌";
        phone.color = "好看到极致的丑";
        phone.price = 1999;
        phone.size = 122;
       /* Phone phone = new Phone("小米",1999,"五彩斑斓的黑",199);
        System.out.println(phone);*/
        System.out.println(phone);

    }


}

//1通过class关键字创建手机类用来描述手机这一类事务
class Phone {
    /*
    通过成员变量来描述一类事务的特征
    成员变量;类里方法外,无需手动初始化
     */


    @Override
    public String toString() {
        return "Phone{" +
                "brand='" + brand + '\'' +
                ", price=" + price +
                ", color='" + color + '\'' +
                ", size=" + size +
                '}';
    }

    public Phone() {
    }

    //2定义特征 品牌 价格 颜色 尺寸
    public Phone(String brand, double price, String color, double size) {
        this.brand = brand;
        this.price = price;
        this.color = color;
        this.size = size;
    }

    String brand;//品牌
    double price;//价格
    String color;//颜色
    double size;//尺寸

    //3定义 行为 打电话 发微信  看直播
    /*
    我们通过方法来表述手机这一类实物的功能
    格式:修饰符 返回值类型 方法名(参数列表){方法体}
     */
    public void call() {
        System.out.println("假装正在打电话~");
    }

    public void meessage() {
        System.out.println("假装正在发短信~");
    }

    public void learn() {
        System.out.println("假装正在看直播~");
    }
}

四种权限修饰符

在这里插入图片描述

可以用来修饰 属性 方法 类

   封装

  :1.类的封装 把一些属性和行为进行抽象,封装成一个类组件,你如Phone类
      隐藏具体的实现细节,提高程序的安全性。一个类之中只能有一个被public修饰的类,并且类的名字必须与文件的名字一至类只有两种权限修饰符public与缺省

    2.属性的封装 属性前加private就行
    我们需要提供对应的get set方法
    3.方法的封装,用private修饰,可以再本类的公共方法中调用私有方法
    如果想执行此方法,调用公共方法即可

封装小练习

package cn.tude.oop;

/*
本类用于测试封装
 */
public class TestPrivate {

    public static void main(String[] args) {

        //4.创建对象
        Student s = new Student();
        //5.调用学生类的study与eat方法
        s.eat();//调用学习功能
        s.study();//调用吃饭功能
        System.out.println(s.name);//查看学生的name属性
       // System.out.println(s.sno);//查看学生的学号属性
        //System.out.println(s.subject);//查看学生的学科属性
        s.setSno(100);
        System.out.println(s.getSno());
    }
}

/*
1.通过class关键字封装一个学生类
 */
class Student {
    /* 2.描述学生这一类实物的属性-----通过成员变量*/
    String name;//姓名

    public int getSno() {
        return sno;
    }

    public void setSno(int sno) {
        this.sno = sno;
    }

    private int sno;//学号
    private String subject;//科目

    public String getSubject() {
        return subject;
    }

    /*
    没有返回值但有返回值类型返回值类型为空
     */
    /*
    this关键字 本类的意思
     */
    public void setSubject(String subject) {
        this.subject = subject;
    }

    /* 空白处右键Generate点击之后选择getter and setter*/
    /*3.描述学生这一类事物的行为----通过方法*/
    public void study() {
        System.out.println("我们正在学习java~~");
    }

    public void eat() {
        System.out.println("我们正在干饭~~");
    }


}

Demo2

package cn.tude.oop;

import org.junit.jupiter.api.Test;

/*
本类用于面向对象的巩固练习
 */
public class TestCar {
    public static void main(String[] args) {
        Car car = new Car();
        /*car.color="黑得慌";
        car.brand="红旗l5";
        car.price=12112;
        car.length=0.2;
        System.out.println(car.brand);
        System.out.println(car.length);
        System.out.println(car.price);
        System.out.println(car.color);*/
        //car.start();
        car.stop();
        car.setBrand("大洋马");
        car.setColor("black");
        car.setPrice(200.20);
        car.setLength(9999.99);
        System.out.println(car.getBrand());
        System.out.println(car.getColor());
        System.out.println(car.getLength());
        System.out.println(car.getPrice());
    }
}

class Car {
    private String color;

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }

    public double getPrice() {
        return price;
    }

    public void setPrice(double price) {
        this.price = price;
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }

    private String brand;
    private double price;
    private double length;

    private void start() {
        System.out.println("汽车开动了");
    }

    public void stop() {
        start();
        System.out.println("汽车停止了");
    }


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ᥬ᭄?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值