java学习“初体验”

个人学习java的一些总结,都在下面代码的注释中

Main.java

import object.ObjTest;

/**
 * 开启java学习之旅
 * @author 
 * @version 1.0
 */
public class Main {

    /**
     * 整个程序的入口
     * @param args 命令行参数
     */
    public static void main(String[] args) {

        /*
         *  java程序是由对象组成的,对象有特性、行为和标识三个特征
         *
         *  每个对象都有一个类型,而这个类型既可以是java库内的,也可以是自定义的,而且大多数都需要程序员自定义
         *  这个类型就叫做类,类定义了如何去访问对象/发送请求
         *  类就定义了对象的三个特征,特性是成员属性,行为是方法,标识就是类名
         *
         *  java编程解决问题,也就是将要解决的问题内的某些方面抽象为一个个对象,并且根据自己的经验和对问题的分析
         *  再加上一些其他的辅助解决问题的类,可以这样想:谁能解决这个问题?它能够提供什么样的方法?它和别人有什么关系?
         *
         *  因此,对于一个问题而言,程序员定义的类内的所有成员属性和方法,并不一定希望都被其他的对象访问
         *  比如说综艺节目排名,他只希望你看到最终排名,但并不希望你看到他们是怎么决定排名的(手动狗头保命)
         *
         *  那么,就出现了访问控制:private类内可见,protected继承可见,public公共可见还有默认的包内可见
         *
         *  归根到底,程序要在计算机上跑,而所有的东西都需要在计算机上有存储位置,java程序有五个位置:
         *      1.寄存器:最快,但是无法控制
         *      2.堆栈:第二快,存储某些数据,尤其是对象的引用(是引用而不是对象本身),java特殊类型(在C中叫基本类型)
         *      3.堆:比较慢,存储对象本身
         *      4.常量存储:存储代码和常量
         *      5.非RAM存储:流对象和持久化存储,流对象可以发送到其他机器,持久化对象存储在硬盘
         *                                                                 JDBC等会提供更复杂的持久化对象
         *
         *  java的特殊类型:char 16bits, byte 8bits, int 32bits, short 16bits, long 64bits, float 32bits
         *                  double 64bits, boolean和void没有具体大小
         *
         *  堆栈上的数据存在在堆栈上,系统根据作用域自行创建和删除
         *  而堆上存在的是对象的“值”,这些对象是由java的垃圾处理机制进行监督和清楚
         *  当程序对于堆内对象的唯一引用删除之后,垃圾处理机就会自动清除
         *
         *  System是java.lang包里的一个类,而out是该类的一个成员
         *  out对象的类型是PrintStream类,println是out对象的一个成员方法
         *
         *  而java对于对象的使用是必须要使用new关键字,来在堆上动态分配内存空间给对象
         *  而本程序并没有创建System的实例,是因为out是System类的static对象
         *
         *  static可以不与任何类产生关联,就能够被使用,即使不创建类的对象
         *  static成员变量只有一个内存,即使你创建了很多个对象,他们的static成员也只有一个内存域
         *  同样,该关键字可以应用于方法上
         */
        System.out.println("Hello world!");

        // 这里只是声明一个引用,引用并不是对象已经存在了,必须要用new联系一个对象
        ObjTest obj;
        // 类名加括号是构造方法,可以自己编写,java也会提供默认的构造方法
        obj = new ObjTest();
        System.out.println("obj可访问的公共变量"+obj.pblMember);
        System.out.println("obj通过方法返回的公共变量"+obj.getPriMember());
    }
}

ObjTest.java

package object;

/**
 * 使用类的成员和方法
 * @author 
 * @version 1.0
 */
public class ObjTest {

    /*
     * 这里将定义四种类型的变量
     * 没有初始化,编译器将定义为0值,而方法中的局部变量则会被定义为没有意义的任何值
     */
    public int pblMember;
    protected int proMember;
    private int priMember;
    int pkgMember;
    static int statMember;

    /**
     * 返回私有变量
     * @return 未初始化的私有变量的值
     */
    public int getPriMember() {
        return priMember;
    }
}

class ObjT extends ObjTest {

    /**
     * 返回继承可见的值
     * @return 未初始化的继承下来的值
     */
    int getProMember() {
        return proMember;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值