一基础相关知识点:
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;
}
}
运行结果: