• J2SE基础:2.对象的创建与使用


    1:參数传递的值传递与引用传递


    A:值传递:基本数据类型传递都是值传递

    B:引用传递(地址传递):对象数据类型都是引用传递。





    2:类变量与成员变量(实例变量,对象变量)


    类变量:通过类名调用,类变量被全部的实例共享。

    final static int MAX = 20;//Java中定义常量



    对象变量:通过对象调用(对象必须new出来)。






    3:类方法与成员方法(实例方法,对象方法)

    类方法:通过类名调用,在类方法中不能使用thiskeyword。



           由于this代表当前对象。



    成员方法:通过对象调用(对象必须new出来)。





    4:
      构造方法
      销毁方法(finalize)

    销毁方法是在对象被销毁的时候进行调用的。



    当一个对象在堆区没有一个明白的引用指向它的时候,Java虚
    拟机觉得该对象是没用的。





      垃圾回收器是用于回收堆区分配的对象。

    垃圾回收器仅仅会回收3次的
      的内存。

    垃圾回收器是虚拟机自己主动调用的。(堆区内存不够的情况下调用)

      可是能够通过System.gc()来强制执行垃圾回收器。



    5:static静态块与对象块


    寻找main方法--->载入类--->载入类的静态块代码(仅仅初始化一次)

    --->载入类的静态方法和静态变量(仅仅初始化一次)---->对象块方法

    --->对象的构造方法--->调用对象的方法--->运行对象的销毁方法。


    //成绩类
    class Score
    {
    	int english;
    	int math;
    	int chinese;
    	Score(){
    	
    	}
    
    	Score(int english,int math,int chinese){
    		this.english = english;
    		this.math = math;
    		this.chinese = chinese;
    	}
    }
    
    class Student{
    	int stuid;
    	String stuname;
    	String stusex;
    	//将成绩类做为学生类的一个属性。

    Score score; public Student(Score score){ this.score = score; } public int getTotalScore(){ return this.score.english +this.score.math +this.score.chinese; } public void changeScore(Score score){ score.chinese = 0; score.math = 0; } } public class Test_02{ public static void main(String args[]){ Score score_one = new Score(70,60,65); //score_one.english = 70; //score_one.math = 60; //score_one.chinese = 65; Score score_two = new Score(); score_two.english = 11; score_two.math = 12; score_two.chinese = 13; Score score_three = new Score(45,46,47); //score_three.english = 45; //score_three.math = 46; //score_three.chinese = 47; Student stu_one = new Student(score_three); Student stu_two = new Student(score_two); Student stu_three = new Student(score_one); /* System.out.println(stu_one.getTotalScore()); System.out.println(stu_two.getTotalScore()); score_three.english = 70; stu_one.score.math = 23; System.out.println(stu_one.getTotalScore()); System.out.println(stu_two.getTotalScore()); */ System.out.println(stu_one.getTotalScore());//138 stu_one.changeScore(score_two); System.out.println(stu_one.getTotalScore());//138 stu_one.changeScore(score_three); System.out.println(stu_one.getTotalScore());//45 System.out.println(stu_two.getTotalScore()); } }


    public class Test_03
    {
    	int id;
    	final static int MAX = 20;
    
    	public static void main(String args[]){
    		//Test_03 test = new Test_03();
    		//System.out.println(test.MAX);
    		System.out.println(Test_03.MAX);
    
    	}
    }

    class Person
    {
    	int personid;
    	String personname;
    
    	public Person(){
    		System.out.println("对象的构造方法");
    		this.personid = 1;
    		this.personname = "中国人";
    	}
    
    	public void method(){
    		System.out.println("运行方法");
    	}
    
    	public void finalize(){
    		System.out.println("对象被销毁了");
    		this.personid = 0;
    		this.personname = null;
    	}
    }
    public class Test_04
    {
    	public static void main(String args[]){
    		Two();
    
    		System.gc();
    	}
    
    	public static void Two(){
    		//创建对象
    		Person person = new Person();
    
    		//用对象
    		person.method();
    	}
    
    }

    public class Test_05
    {
    	//载入类时。最早运行的一块初始化内容。

    static{ System.out.println("静态块"); } //载入类时,静态方法与静态变量都已经放到内存的静态区域中了。

    public static void staticMethod(){ System.out.println("static方法"); } //对象块的内容,在对象初始化之前运行的内容 { System.out.println("对象块方法"); } //对象的构造方法 public Test_05(){ System.out.println("构造方法"); } public void objectMethod(){ System.out.println("对象方法"); } public static void main(String args[]){ Test_05.staticMethod(); Test_05 test = null; test = new Test_05(); test.objectMethod(); Test_05 test2 = null; test2 = new Test_05(); test2.objectMethod(); } } class Two { static{ System.out.println("Two的静态块"); } }



  • 相关阅读:
    【限时领奖】消息队列 MNS 训练营重磅来袭,边学习充电,边领充电宝~
    从函数计算到 Serverless 架构
    微服务治理热门技术揭秘:无损上线
    合作再升级!云原生加速器成员企业云霁科技获得阿里云产品生态集成认证
    开源小白到核心开发——我与 sealer 的成长故事
    【有奖评测局】阿里云容器镜像 ACR 测评团限时招募中!
    MSE 费芮新金融行业标杆案例
    NBU异构还原Oracle完整备份的一些总结
    Symantec NetBackup 8.1安装部署
    NFS高可用(NFS+keepalive+Sersync)
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6951583.html
Copyright © 2020-2023  润新知