面向对象
基础知识



类和对象


-
创建对象,类的实例化


-
调用属性或方法




方法、属性的存储
栈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("");
}
}
文章详细介绍了面向对象的基本概念,包括类和对象的创建,属性和方法的存储机制。讨论了栈、堆和方法区在内存中的作用,以及变量的分类,如成员变量和局部变量。此外,还展示了如何对对象的属性进行操作,以及如何定义和调用方法,包括计算数组的最大值、最小值、和、平均值等操作。
834

被折叠的 条评论
为什么被折叠?



