面向对象
基础知识
类和对象
-
创建对象,类的实例化
-
调用属性或方法
方法、属性的存储
栈stack:方法内定义的变量,存储在栈中。局部变量
堆heap :new出来的结构(如:数组实体、对象的实体),包括对象中的属性。成员变量
方法区:存放类的模板。
一个人方法的调用相当于在栈中加入一个栈帧,方法内声明的变量(P1)在方法栈帧里,new Person()需要在堆中开辟空间(有地址)(存放对象的实体)
属性
- 变量的分类:数据类型
- 成员变量 vs 局部变量
static变量,即所有对象共用的成员变量。
static String info="员工";
对于形参,在调用方法时赋值即可。
一个类作为其他类的成员变量出现
public class Mydate()
{
int year;
}
public class Employee(){
int id; //基本数据类型
Mydate birthday;//引用数据类型(类、数组等)
Employee emp1 = new Employee();
emp1.id = 1001;
emp1.birthday = new Mydate(); //引用数据类型的赋值。在堆中存放的是指向new Mydate()的地址/// 值
emp1.birthay.year = 19999;
}
方法
- 方法理解
- 方法声明
形参属于局部变量;
- 方法调用
- 注意点
类内可以定义内部类
public void sleep(int hour){
}
sleep(hour:8) 8为实参
数组最大值、最小值、和、平均值、遍历、复制、反转、排序、查询
public class util {
int[] a={3,24,15,6,9,11};
public void maxs(){
int max=0;
for(int i=0;i<a.length;i++){
if(a[i]>max){
max=a[i];
}
}
System.out.println(max);
}
public void mins(){
int min=Integer.MAX_VALUE;
for(int i=0;i<a.length;i++){
if(a[i]<min){
min=a[i];
}
}
System.out.println(min);
}
public void sums(){
int sum=0;
for(int i=0;i<a.length;i++){
sum+=a[i];
}
System.out.println(sum);
}
public void averages(){
int len=a.length;
int sum=0;
for(int i=0;i<a.length;i++){
sum+=a[i];
}
double average=(double) sum/len;
DecimalFormat decimalFormat=new DecimalFormat();
String formattedAverage = decimalFormat.format(average);
System.out.println(formattedAverage);
}
public void bianli(){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+",");
}
System.out.println();
}
public void copy(){
int[]b=new int[a.length];
for(int i=0;i<a.length;i++){
b[i]=a[i];
System.out.print(b[i]+",");
}
System.out.println();
}
public void fanzhuan(){
int[] c=new int[a.length];
int cm=0;
for(int i=a.length-1;i>=0;i--){
c[cm]=a[i];
System.out.print(c[cm]+",");
cm += 1;
}
System.out.println("");
}
public void paixu(){
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-i-1;j++){
if(a[j]>a[j +1]){
int temp=a[j+1];
a[j+1]=a[j];
a[j]=temp;
}
}
System.out.print(a[i]+",");
}
System.out.println("");
}
public void search(){
System.out.println("请输入查询的数字:");
Scanner scan = new Scanner(System.in);
int input = scan.nextInt();
for(int i=0;i<a.length;i++){
if(a[i]== input){
System.out.print(a[i]);
}
}
System.out.println("未找到");
System.out.println("");
}
}