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("汽车停止了");
}
}