一基础相关知识点:
1. 一个对象的调用
首先我们创建一个Phone类
public class Phone {
//成员变量
String name;
int age;
String favourite;
//成员方法
public void myName(){
System.out.println(name);
}
public void myAge(){
System.out.println(age);
}
public void myFavourite(){
System.out.println(favourite);
}
}
根据Phone类我们创建一个对象。再访问成员变量,调用成员方法。
public class usingPhone {
public static void main(String [] args){
//创建对象
Phone P = new Phone();
//访问成员变量
P.age = 19;
P.name = "ax";
P.favourite = "eat";
System.out.println(P.age+" "+P.name+" "+P.favourite);
//调用成员方法
P.myAge();
P.myName();
P.myFavourite();
}
}
执行结果:

内存图分析

2. 两个对象使用一个方法:
创建Phone类:
public class Phone {
//成员变量
String name;
int age;
String favourite;
//成员方法
public void myName(){
System.out.println(name);
}
public void myAge(){
System.out.println(age);
}
public void myFavourite(){
System.out.println(favourite);
}
}
具体代码调用:
public class usingPhone {
public static void main(String [] args){
//创建对象
Phone P = new Phone();
//访问成员变量
P.age = 19;
P.name = "ax";
P.favourite = "eat";
System.out.println(P.age+" "+P.name+" "+P.favourite);
//调用成员方法
P.myAge();
P.myName();
P.myFavourite();
//创建对象
Phone Q = new Phone();
//访问成员变量
Q.age = 191;
Q.name = "ax1";
Q.favourite = "eat1";
System.out.println(Q.age+" "+Q.name+" "+Q.favourite);
//调用成员方法
Q.myAge();
Q.myName();
Q.myFavourite();
}
}
内存图:

3. 两个引用指向同一个对象:
Phone 类的创建:
public class Phone {
//成员变量
String name;
int age;
String favourite;
//成员方法
public void myName(){
System.out.println(name);
}
public void myAge(){
System.out.println(age);
}
public void myFavourite(){
System.out.println(favourite);
}
}
具体的代码调用:
public class usingPhone {
public static void main(String [] args) {
//创建对象
Phone P = new Phone();
//访问成员变量
P.age = 19;
P.name = "ax";
P.favourite = "eat";
System.out.println(P.age + " " + P.name + " " + P.favourite);
//调用成员方法
P.myAge();
P.myName();
P.myFavourite();
Phone Q = P;
System.out.println(Q.age + " " + Q.name + " " + Q.favourite);
}
}
内存图:

4. 使用对象类型作为方法的参数:
普通的方法调用:
public class usingPhone {
public static void main(String [] args) {
//创建对象
Phone P = new Phone();
//访问成员变量
P.age = 19;
P.name = "ax";
P.favourite = "eat";
System.out.println(P.age + " " + P.name + " " + P.favourite);
//调用成员方法
P.myAge();
P.myName();
P.myFavourite();
//方法调用
define(100);
}
public static void define(int num){
System.out.println(num);
}
}
使用对象类型作为方法的参数:
public class usingPhone {
public static void main(String [] args) {
//创建对象
Phone P = new Phone();
//访问成员变量
P.age = 19;
P.name = "ax";
P.favourite = "eat";
System.out.println(P.age + " " + P.name + " " + P.favourite);
//调用成员方法
P.myAge();
P.myName();
P.myFavourite();
//方法调用
define(P);//等同于Phone ax = P;
}
public static void define(Phone ax){
System.out.println("m"+"\t"+ ax.age);
}
}
内存图:

5. 使用对象类型作为方法的返回值:
Phone类
public class Phone {
//成员变量
String name;
int age;
String favourite;
//成员方法
public void myName(){
System.out.println(name);
}
public void myAge(int age){
System.out.println(age);
}
public void myFavourite(){
System.out.println(favourite);
}
}
具体调用:
public class usingPhone {
public static void main(String [] args) {
//创建对象
Phone P = new Phone();
//访问成员变量
P.age = 19;
P.name = "ax";
P.favourite = "eat";
System.out.println(P.age + " " + P.name + " " + P.favourite);
//调用成员方法
P.myAge(19);
P.myName();
P.myFavourite();
Phone Q = define();
System.out.println(Q.age + " \n" + Q.name + "\n" + Q.favourite);
}
public static Phone define(){
Phone Def = new Phone();
Def.age = 18;
Def.myAge(200);
return Def;
}
}
内存图:

二.成员(全局)变量与局部变量:
两者的区别:
1.定义的位置不一样
局部变量:在方法的内部。
成员变量:在方法的外部,直接写在类中。
============================================
2.作用范围不一样
局部变量:只有方法当中才可以使用,除了方法就不能再用。
成员变量:整个类中都可以使用。
=============================================
3.默认值不一样
局部变量:没有默认值,如果想使用,必须手动赋值。
成员变量:如果没有赋值,会有默认值,规则与数组的相同。
=============================================
4.内存的位置不一样
三.面向对象三大特征(封装,继承,多态)
1封装:将一些细节信息隐藏,直接调用即可。
1.方法就是一种封装
2.private也是一种封装
1.使用方法判断数组的最大值。
public class an7 {
public static void main(String[] args) {
int[] arr = {12,22,23,42,52,26,72,82,39};
int max1 = methodmax(arr);
System.out.println(max1);
}
public static int methodmax(int[] arr){
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i]>max){
max= arr[i];
}
}
return max;
}
}
运行结果:






![[器械财讯]TRiCares完成近4亿融资,推动Topaz三尖瓣置换系统发展](https://img-blog.csdnimg.cn/img_convert/e9c1e53d11f945e96d5147867726ba1a.jpeg)






![记一次学习--[网鼎杯 2018]Comment二次注入](https://i-blog.csdnimg.cn/direct/13ffd69f2a1b4dc683ea501185da3fe7.png)





![龙腾CMS downloadFile接口任意文件读取漏洞复现 [附POC]](https://i-blog.csdnimg.cn/direct/849b140c99ed4ee4a4dc4b59b78f7a68.png)
