java学习笔记(一)类与对象

1.面向对象方法的特征

1.抽象:同类型抽象出共同属性和行为形成类
2.封装:数据和处理数据方法封装分到一个类
3.继承:在已有的基础上去产生新的类
4.多态:在继承的基础上,父类和子类具体响应可以不同

个人理解:
1.抽象:将实际对象符号化,用数据或方法表示实际含义
例:钟表类,int hour 表示小时 ,showtime()表示显示时间

2.封装:就是把数据和方法封在一起,将使用者和设计者区分,使用者不必关注内容

3.继承:站在巨人的肩膀上,子类可以获得父类的数据和方法,并可以修改和增加方法。

4.多态:父类和子类都能响应同名消息,具体实现方式可以不同

2.类声明与对象创建

1.类是一类对象的描述:人
2.对象是类的具体实例:小明
如果要使用类,必须创建对象

定义方法:
基本数据类型: int a
对象: People xiaoming = new People() 分配内存空间,默认初始化为空

3.类里面声明数据成员

数据成员:任何类型

实例变量:无static,每个对象都有的属性,但在对象中值可以不同
类变量(静态变量):有static 整个类只有一个值
例:圆的半径(R),圆周率(π )就是实例变量和静态变量。

实例变量:只有对象名.实例 引用 y1.R
静态变量:类名和对象名都可以引用 yuan.π == y1.π

4.类里面声明方法成员

和c语言的函数类似,都有名字和参数

实例方法:无static 对象的行为
类方法(静态方法):有static 公共的方法,共同的行为

实例方法:对象名调用
静态方法: 类名直接调用,对象名调用

参数传递:
值传递:基本数据类型,传完就没关系
引用传递:对象类型或数组,和c的指针很像。

可变长参数: 类...变量名(引用数组,元素不确定)
定义一个数组,把变量名的值赋值过去
用增强型for循环: for(类.r : 数组名){ 这样就可以完美遍历}

5.包

一组类的集合,也可以有多个子包
作用:
1.将相关源代码组织一起
2.避免类名冲突
3.提供包一级的封装及存取权限

编译单元:
一个java源代码文件称为一个编译单元:
1.所属包的声明
2.import包的声明
3.类和接口的声明

一个编译单元只有一个public类,类名与文件名相同。编译单元中其他类起辅助作用,称为缺省的default类

包的分类:
命名的包:package 包名
默认包:不含包的声明

引入包:import 包名.类名(*) *代表所有(在同一个java项目下)

静态引入:
单一引入:某一个指定静态成员:import static java.lang.Math.PI;
全体引入:引入全体静态成员:import static java.lang.Math.*;

6.类的访问权限控制

1.公有(public) 可被任何方法访问

2.保护(protected)只被同一类及其子类方法访问

3.私有(private) 只可被同一类的方法访问

4.默认(default)仅允许同一个包内的访问

在这里插入图片描述

为了访问私有类,我们需要提供公有方法,get和set方法
get方法:一般get+你要获取的类名
例: public int getReids{ return redis}
set 方法:一般set+你要改的类名
用this关键字 更容易理解代码。
例:public int setRedis(redis) { this.redis = redis}

7.对象的初始化

构造方法:对实例变量初始化
构造方法:
1.方法名与类名相同
2.不定义返回类型
3.通常被声明为公有
4.可以有任意多个参数
5.生成对象时自动调用

定义构造方法:
1.生成对象时给构造方法初始值,进行初始化
2.构造方法可以被重载
重载:一个类中有两个及以上同名方法,参数不同

避免冗余:使用this关键字,参数少的调用参数多的。

下面的代码,定义构造方法和重载

public class iu2 {
	 int amt;
	 String bmt;
	 float cmt;
	 
	public iu2() {
	this(1,"2",3);
}
	public iu2(int a,String b) {
		this(a,b,3);
	}
	public iu2(int a,String b,float c) {
		amt =a;
		bmt =b;
		cmt=c;
	}
}

下面代码 是对象的初始化。

import static java.lang.Math.PI;
public class iu {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		iu2 a = new iu2(1,"2",3);
		iu2 b = new iu2(1,"2");
		iu2 c = new iu2();
		System.out.println(a.amt);
		System.out.println(a.bmt);
		System.out.println(a.cmt);
		
		System.out.println(b.amt);
		System.out.println(b.bmt);
		System.out.println(b.cmt);
		
		System.out.println(c.amt);
		System.out.println(c.bmt);
		System.out.println(c.cmt);
	}

}

8.内存回收

无用对象:离开了作用域的对象,无引用指向的对象

java运行时系统通过垃圾收集器周期性释放无用对象所使用的内存

垃圾收集器:自动扫描对象动态内存区,对不在使用的对象做上标记,进行垃圾回收

finalize()方法:每个类中都有,在内存被回收前一时刻调用,用于释放资源,可能在任何时机以任何次序执行

9.枚举类

可取值有一定范围,所有可取值可以一一列举

enum 枚举类型名称{}

特点:一个类,不能继承其他类,类体中可包括方法和变量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值