java_oop_类与对象
类与对象
包
方法
=========================================
对象的概念
类与对象的关系
万物皆对象
属性(名词)
对象的属性
属性的值
方法(动词)
对象执行的操作
对象:用来描述客观事物的一个实体,由一组属性和方法构成
对象有一个特征叫封装
对象同时具有属性和方法两项特征
对象的属性与方法通常被封装在一起,不能分割
从对象抽象出类
抽取出不同对象共同的属性与方法来形成类
例如两个人都是顾客类
类是对象的类型
不同于int类型:类这个类型有方法
类是抽象的概念,仅仅是模板,比如说"人"
对象是一个你能看到的,摸的着的具体实体
宠物--现实世界的对象
如何在计算机中描述它
从现实中抽象出类分三步:
1找出它的各类
2找出它的属性
3找出它的行为
用面向对象的思想描述世界
第一步:发现类 根据对象抽象出类
第二步:发现类的属性
第三步:发现类的方法
//第一步定义类名
class Dog{
//第二步编写类的属性
String name="旺财";//昵称
int health=100;//健康值
int love=0;//亲密度
String strain="拉布拉多犬";//品种
//第三步编写类的方法
public void print(){
//输出狗信息的代码
}
}
===============================
声明类的语法和步骤
类的命名与规范
类的实例化
对象的使用
null
类属性的默认初始值
类概述
所有的java程序都以类class为组织单元
关键字class定义自定义的数据类型
String是jdk定义的一个类型
class是用来自定义类型的
--------------------------------
声明类的语法和步骤
写属性就相当于类的声明
public class 类名{
//定义属性部分
属性1的类型 属性1;
......
属性n的类型 属性n;
//定义方法部分
方法1;
方法m;
}
public class Test{
//声明了三个属性
int age=10;
String name;
int[] nums;
//声明方法
public void test(){
System.out.println("aaaaaaaa");
}}
------------------------------
类的实例化(创建对象)
创建实例(对象)
类名 实例名 = new 类名();//new后面跟的是构造方法
引用实例成员:使用.进行以下操作
引用实例的属性:实例名.属性
引用实例的方法:实例名.方法名()
-------------------------------------------------
类中属性的默认值
1.数字类型(int,short,byte,long,float,double)的初始化默认值是0
2.boolean的初始化默认值是false
3.引用类型的初始化默认值是null。例如字符串类型
类中方法中的属性默认值是没有的
这是两者之间的一个重要区别。所以方法中的属性使用时一定要赋值。
package com.fgy.eclipse; public class DogTest { public static void main(String[] args) { Dog d1 = new Dog(); d1.age = 18; d1.name = "white"; d1.pz = "11"; int age=d1.age;//既可以定义一个变量来接收实例的属性 System.out.println(d1.age);//也可以直接输出 Dog d2 = new Dog(); d2.age = 5; d2.name = "black"; d2.pz = "22"; Dog d3=null; d3.age=20; } }
===============================================
类与文件的关系
包概述
如何使用包
包的命名规范
导入类及类的搜索顺序
jdk中提供的包
类与文件的关系
1一个文件中可以包含有多个java类
2但是最多只有一个public类,可以没有,但是一般来说一个文件中有一个public类
3java文件的名称要与其中的public类名一致
package com.fgy.eclipse;
public class Demo2 {
}
class fish{
}
----------------------
包概述
用于组织java类的一种机制
作用:
相关功能的类可以以包的形式组织在一起
避免命名冲突
访问控制
----------------------
使用包
package关键字
----------------------
导入类
import关键字,使用不同包中的类
单类型导入:import p1.p2.classname;
按需导入:import p1.p2.*;
ctrl+shift+o快速导入类
类的搜索顺序(按优先级依次降低):
1当前编译单元(即同一个类的之中)
2单类型导入(单类型就是指定的,确定的,例如import com.sh.dj.Dog)
3同一个包中的其它类
4按需导入(import com.sh.dj.*)
-----------------------------------
不需要显式导入的类,主要是jdk中相关的类。例如java.lang包中的类,
String是其中之一类
System也无需显式导入
以下是jdk中的部分包
java.lang 核心类
java.util 工具类,集体框架
java.io 输入与输出流
java.nio 新输入与输出流
java.sql JDBC相关类
java.net 网络编程类
java.time 时间处理类
java.swing UI类
=====================================