day5_java类和对象

对象

(1)一切可以被描述的事物,叫做实体

(2)属性:

                 指的是对象的特征

(3)方法:

                指的是对象的 动作,行为

--------------------------------------------------

相似对象的集合。是一个抽象的概念

 ------------------------------------------------

类和对象

区别和联系

1.    类是抽象的,对象是类的具体化

2.    类是模板,规定了所有对象共同的属性和方法。

3.    对象是通过模板创建出来的具体的一个实体;类是一种数据类型,是引用数据类型(存的地址),对象是堆中的引用变量

----------------------------------------------------------------------

 面向对象的思想

什么是面向对象思想,可以参考https://blog.csdn.net/chenqiuping_ls/article/details/53609807

1.    符合人类认知规律和思考习惯

2.    以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能

3.    对象定义

(1)    访问修饰符 class 类名{

        //类体:

        属性;

        方法;

    }

(2)规范

帕斯卡命名法。多个单词组成,每个单词首字母都大写

例如:Scanner、String、System

4.    方法

(1)    访问修饰符 返回值类型 方法名(参数1,参数2…..){

方法体;

}

带返回值的方法:

         注意:
        1.声明的类型 必须与 返回的类型 一致;
        2.只能返回一个值;

(2)    规范

骆驼命名法

5.    Thisthis 表示本类对象,哪个对象调用的这个方法,this就是哪个对象this可以用来调用本类的成员变量和方法

6.    方法的优势:

    代码(功能)封装;

    代码的重用

    方便维护

7.方法调用
    注意: 
        1.不同类中调用方法用对象名调用;
        2.同一个类中自定义方法之间互相调用,是
  使用 this调用的,this可以省略;
        3.同一个类中,主方法调用其它方法必须用
  对象调用。(因为主方法是 static)

8.    成员变量和局部变量:

在类中直接定义的是成员变量,在方法中的是局部变量

作用域:成员变量在整个类中有效

           局部变量只在定义它的方法中有效

初始化:成员变量自动初始化

        局部变量必须我们自己初始化

优先级:如果成员变量和局部变量同名,优先使用局部变量,可以用this来区分,this调用的是成员变量

 

9.一个文件中定义多个类:
 注意:
  只能有一个类是public修饰的;
  public修饰的类的名字与文件名必须一样;

  同一个程序包中不能存在同名的类。

10.    类前注释

/**

* 交通工具类

* @author daidai

* @version 2018-5-1.0

*/

可以导出帮助文档

 

11.  无参方法

    带参方法

        注意:
          1.定义了形参,调用时必须传参;

          2.传参 时。类型 ,个数,顺序一致。

12.参数传递:

参考文章:java中传递参数的两种方式https://blog.csdn.net/a329661511/article/details/78474763

  1.参数是值类型;

    值不变,不同的空间;

  2.引用类型

     两个引用 指向同一个对象,值变了;

 

  3.引用类型

    两个引用 指向不同的对象,值没变;

13.  对象数组

//遍历

for(person p :pens){

if(p == null){

break;

}

p.show();

}

 14. 匿名对象的使用方式只能使用一次

 -----------------------------

BigInteger 类型的使用
//阶乘

package day13;

import java.math.BigInteger;

public class Ex3 {

	public static void main(String[] args) {
		BigInteger sum = new BigInteger("1");
		int n =100;
		for(int i = 1 ;i <= n ;i++){
			sum = sum.multiply(BigInteger.valueOf(i));
		}
		System.out.println(sum);
	}

}

------------------------------------

//可变参数方法 ...
package day13;


import java.util.Arrays;

 class Test{
	public void f(int [] arr){
		System.out.println(Arrays.toString(arr));
	}
	
	public void fff(int ...arr){
		System.out.println(Arrays.toString(arr));
		System.out.println(arr.length);
	}
}

public class Ex7 {
	
	

	public static void main(String[] args) {
		Test t = new Test();
		int [] arr = {11,22,33};
		t.fff(arr);

	}

}

可变参数方法优势:传参,灵活,底层是数组

 

可变参数与数组参数的区别:

1.    数组作为参数,传参只能传一个数组

可变参数可以传多个值,可以不传值,可以传一个数组

2.    数组参数,可以有多个

可变参数,只能有一个

3.    数组参数,位置任意

可变参数,必须放在最后

----------------------------------------------------------

递归

1.    一个方法 反复调用自身;

2.    能有结束,反复调用自身的条件。(出口)

--------------------------------------------------------

 

命令行传参数

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值