对象调用过后即消亡,如:
在main里调用一个p1=eat();
则在栈里调用完p1后,p1离开栈。
public class Person{
String name;
int age;
char gender;
public void stufy(){
System.out.println("studying");
}
public int showAge(){
return age;
}
public void addAge(int addAge){
age+=addAge;
}
}
public class Person{
public static void main(String[] args){
Person p1=new Person();
p1.name="Tom";
p1.age=12;
p1.gender='男';
p1.study();
p1.addAge(2);//给age+2
int age=p1.showAge();
System.out.println("age="+age);
}
}
public class Exer02{
public static void main(String[] args){
Exer02.method3(3,8);
}
public void method1(){
for(int i=0;i<10;i++){
for(itn i=0;i<8;j++){
System.out.println("*");
}
}
}
public void method2(){
return 10*8;
}
public void method3(int m,int n){
for(int m=0;m<10;m++){
for(int n=0;n<8;n++){
System.out.println("*");
}
}
return m*n;
}
}
public class Circle{
double radius;//半径
public void findArea(){
System.out.println(3.14*radius*radius);
}
}
public class circlTest{
public static void main(String[] args){
Circle c1=new Circle();
c1.radius=2.3;
c1.findArea();
}
}
public class Student{
int number;
int state;//年级
int score;
}
public class StudentTest{
public static void main(String[] args){
Student[] stu=new Student[20];
//这里才是创建一个类数组的正确方法
//创建20个students对象
students[i].number=i+1;
//这种表示对象数组里某一个对象的属性
students[i].state=(int)(Math.random()*6+1);
students[i].score=(int)(Math.random()*101);
//********************************************
StudentUtil util=new StudentUtil();
util.printStudentsWithState(students,3);
util.printStudents(students);
for(int i=0;i<students.length;i++){
if(3==students[i].state){
Student stu=students[i];
/*System.out.println("number:"+stu.number+“,state:”
+stu.state+",score:"+stu.score);*/
//以上方式过于繁琐
System.out.println(stu.show());
//使用.show()函数直接把该对象属性全显示出来
}
}
for(int i=0;i<student.length-1;i++){
for(int j=0;j<student.length-1-i;j++){
if(students[j].score>students[j+1].score) {
Student temp=students[j];
students[j]=students[j+1]};
students[j+1}=temp;
}
}
}
for(int i=0;i<students.length;i++){
System.out.println(students[i]);
}
//for里int的i只能用于for循环以内
}
}
public class StudentUtil{
public void printStudentsWithIndex(Student[] students,int state){
for(int i=0;i<students.length;i++){
System.out.println(stu.show());
}
}
public void students(Student[] students){
for(int i=0;i<students.length;i++){
System.out.println(students[i]);
}
}
}
封装:把一块特定的代码分开制成方法。
方法的重载:同一个类里两个或多个方法名一样但是形参列表不一样就叫重载,如:
eat(int a);和eat(String a);两个在同一个类里就是重载。“两同一不同”。
public class OverloadTest{
OverloadTest test=new OverloadTest();
test.add(1,2,3);
test.add(2,3);
//有两个引入两个形参的add方法,那么系统会优先选择最前的
//比如下面double型和int型,系统会选在前面的double型
public void add(double a,double b){
//略
}
public void add(int i,int j){
//略
}
public void add(int i,int j,int k){
//略
}
public void add(String s1,String s2){
//略
}
public void add(itn i,String s){
//略
}
}
public class InterviewTest{
public static void main(String[] args){
int[] arr=new int[]{1,2,3};
System.out.println(arr);
// 打印结果为地址
char[] arr1=new char[]{'a','b','c'};
System.out.println(arr1);
//打印结果 abc
boolean[] arr2=new boolean[]{false,true,ture};
System.out.println(arr2);
//打印结果为地址
}
}
原因就在于,println在系统里是一系列的方法,
如:println(boolean);println(char);println(char[]);println(double);
println(Object);等等.
比如要打印helloworld,调用的是println(String);void
打印123,调用的是println(int);void
打印123.5,调用的是println(double);void
而上面打印的是数组,那么引用的是 println(OBject);void
之所以打印出abc是因为系统内有个println(char []);void的方法
所以调用的不是默认数组打印方法println(Object);void
文章探讨了Java中对象的生命周期,特别是当在main方法中调用一个对象如p1=eat()后,对象p1如何在栈中消亡。同时,文章介绍了类如Person、Circle、Student的使用,包括成员变量、方法调用如study(),addAge()等。此外,还讨论了方法的重载、封装概念以及不同类型的数组打印行为,例如println()方法如何根据参数类型选择合适的方法进行打印。

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



