从零开始手机软件定制化_第3天_Java基础教程_第三章

笔者说:

再多的文字都不如写一段代码好用。

学习顺序:

  1. 《C++程序设计》(第四版)
  2. 《Java基础教程》(第四版)+eclipse的使用
  3. 《第一行代码Android》
  4. 《Android》开发秘籍

一面代码学会类与对象:

abstract class A//abstract与final相对,abstract说明此类必须派生,并且abstract意味着这个类
//是一个骨架也必须只是一个骨架(即只有成员变量+函数声明,没有函数体,注意,其构造函数可以有函
//数体)
{
    A()
    {
        System.out.println("哎呀,A1出来了");
    }
}
final class A1//后面还可以加implement 接口名
//final前边还可以加public
//public是访问修饰符,用在类前表示其它包可以访问,没有public则说明其它包不可访问
//final是其它修饰符,final说明此类不可派生,除此之外可替换为abstract,
//extends后面接父类,
{
    public int a;
    public void a_test(int a)
    {
        this.a=a;
    }
//成员变量和成员函数的public作用相同,有public说明其它包可以访问该变量/函数
    protected int b;
    protected void b_test(A1 a)
    {
        a.b=112233;//意思是临时对象a的b赋值为112233
    }
//成员变量和成员函数的protected作用相同,有protected说明只有本包才可以访问该变量/函数
    private int c;
    private void c_test()
    {
        c=1;
    }
//成员变量和成员函数的private作用相同,有private说明只能通过本类中的可访问的成员函数进行访问
//如没有设置初值,成员变量会自动初始化为0,成员函数中的变量会报错(即成员函数中的变量必须设置
//初值)
    static int d;
    static void d_test(int d1)
    {
        d=d1;//注意this不能和static混用,这也是我这里没有使用this.d=d;的原因
    }
//static作用在变量上:说明所用对象共用一个变量(可以理解为小说中的同生锁,一个伤了,另一个也伤
//,两个一起变),这种变量称为静态变量
//static作用在函数上:说明函数只能操作静态变量,只能调用静态函数,这种函数称为静态函数。调用
//该函数的时候可以用类名来调用(如在此可以用A.d_test调用)那么静态变量是否也可以用类名调用呢
//?暂时不知道
//当没有访问修饰符(包括public、protected、private)时,默认与protected相似,区别在于默认的时
//候是包可见,protected是包子可见。可以这么理解,包可以理解为公司,类可以理解为家人,默认意味
//着是公司共同资产,公司里面的人都能用;protected意味公司是你爹的,这个时候不仅公司里的人能用
//,你作为家人也能用
//出现同名的时候,用this指针表示成员变量
    A1()//这是构造函数,构造函数的函数名和类名一样,前面不能有修饰符和返回值,实际上当没有构
//造函数的时候,天然会存在一个默认构造函数,默认构造函数会将所有的成员变量赋值为0(也有fulse
//,看其是什么变量),当用户自定义了一个构造函数之后,天然存在的构造函数就消失了,不能再调用
    {
        System.out.println("哎呀,A1出来了");
        a=1;
        b=2;
        c=3;
        d=4;
    }
    public int digui(int n)
    {
        if(n==1)
        {
            return n;
        }
        else
        {
            return n*digui(n-1);
        }    
    }
//构造递归函数的基本组成:if~return 常数 else~return n*函数 (不一定是*,也可+,视情况而定)
}
public class test//要注意,一个程序只能有一个类是public
{
    public static void main(String args[])
//args是arguments的缩写,存着我们在命令行中输入的字符串,其中以空格为间隔存一个单位,如我在命
//令行中输入java test str1 str2,那么str[0]里面存的是str1,str [1]里面存的是str2
    {
        A1 a1=new A1();//创建对象并分配内存,其中A1=a是创建对象,此时只占一个地址的内容;a=new A1()是分配内容

        System.out.println("a由"+a1.a);
        a1.a_test(a1.a);
        System.out.println("变为了"+a1.a);
        System.out.println("b由"+a1.b);
        a1.b_test(a1);
        System.out.println("变为了"+a1.b);
//括号里边形参不同时,对使用时放入的变量作用不同,比如放进去的是个int变量,我们知道a=b本质是复
//制,值复制了,没有改变地址,而对数组和自定义类来说,a=b是把地址交过去了,因此在运行函数的时候
//放进去的变量也会变

        System.out.println("计算10!得到"+a1.digui(10));

        a1=null;//删除对象
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值