Java 基础 ------- 面向对象(一)
Posted 随风而逝.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 基础 ------- 面向对象(一)相关的知识,希望对你有一定的参考价值。
面向对象的三大特征:封装、继承和多态
1、类与对象
对象:描述客观事物的一个实体
类:具有相同属性和方法的一组对象的集合.
对象拥有类的属性和方法,是类的一个实例,就像模具与模具制作的物品之间的关系。
类图的画法:
1.1、类的定义:
访问修饰符 class 类名{ }
Java 类名的命名规则:
类名应该以下划线(_)或字母开头,最好以字母开头。
第一个字母大写,如果类名由多个单词组成,则每个单词的首字母最好都大写。
类名不能为 Java 中的关键字,例如 boolean、this、int 等。
类名不能包含任何嵌入的空格或点号以及除了下划线(_)和美元符号($)字符之外的特殊字符。
访问修饰符: public,protected,friendly(或default),private
1. private
用 private 修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类(包括该类的子类)访问和引用。因此,private 修饰符具有最高的保护级别。例如,设 PhoneCard 是电话卡类,电话卡都有密码,因此该类有一个密码域,可以把该类的密码域声明为私有成员。
2. friendly(默认)
如果一个类没有访问控制符,说明它具有默认的访问控制特性。这种默认的访问控制权规定,该类只能被同一个包中的类访问和引用,而不能被其他包中的类使用,即使其他包中有该类的子类。这种访问特性又称为包访问性(package private)。
同样,类内的成员如果没有访问控制符,也说明它们具有包访问性,或称为友元(friend)。定义在同一个文件夹中的所有类属于一个包,所以前面的程序要把用户自定义的类放在同一个文件夹中(Java 项目默认的包),以便不加修饰符也能运行。
3. protected
用保护访问控制符 protected 修饰的类成员可以被三种类所访问:该类自身、与它在同一个包中的其他类以及在其他包中的该类的子类。使用 protected 修饰符的主要作用,是允许其他包中它的子类来访问父类的特定属性和方法,否则可以使用默认访问控制符。
4. public
当一个类被声明为 public 时,它就具有了被其他包中的类访问的可能性,只要包中的其他类在程序中使用 import 语句引入 public 类,就可以访问和引用这个类。
类中被设定为 public 的方法是这个类对外的接口部分,避免了程序的其他部分直接去操作类内的数据,实际就是数据封装思想的体现。每个 Java 程序的主类都必须是 public 类,也是基于相同的原因。
1.2属性:对象拥有的特征
访问修饰符 数据类型 属性名;
属性名:一般是满足小驼峰命名,也就是第一个单词子母小写,后面单词的第一个首字符均大写
数据类型:主要分为基本数据类型和引用数据类型,也就是八大基本数据类型和引用数据类型中的类,数组和接口;
常用的: boolean, byte,short,int,long,char,float,double 和String
初始化的默认值如下:
整数型(byte、short、int 和 long)的基本类型变量的默认值为 0。
单精度浮点型(float)的基本类型变量的默认值为 0.0f。
双精度浮点型(double)的基本类型变量的默认值为 0.0d。
字符型(char)的基本类型变量的默认值为 “\\u0000”。
布尔型的基本类型变量的默认值为 false。
数组引用类型的变量的默认值为 null。如果创建了数组变量的实例,但没有显式地为每个元素赋值,则数组中的元素初始化值采用数组数据类型对应的默认值。
注意:成员变量可以不用赋值,局部变量必须要赋值
public、protected、private:用于表示成员变量的访问权限。
static:表示该成员变量为类变量,也称为静态变量。
final:表示将该成员变量声明为常量,其值无法更改。
1.3方法
方法:对象执行操作的行为
可以分为有返回值得方法和无返回值得方法,有无返回值中又分为有无参数,
大概四个类型:
无返回值无参数的方法:
访问修饰符 void 方法名 () { ... }
无返回值有参数的方法:
访问修饰符 void 方法名 (参数类型 参数名1,参数类型 参数名2......) { ... }
有返回值无参数的方法:
访问修饰符 返回类型 方法名 () { ... return 返回具体数据; }
有返回值有参数的方法:
方法名:一般是满足小驼峰命名,也就是第一个单词子母小写,后面单词的第一个首字符均大写
return : 返回具体数据并退出该方法;
构造方法:主要分为默认构造方法和带参构造
作用:进行数据的初始化
//默认构造方法 访问修饰符 与类名相同的方法名 (){ //...... } //带参构造方法 访问修饰符 与类名相同的方法名 (参数列表){ //...... }
特点:方法名与类名相同,没有返回值,如果没有创建java 会自动添加默认构造方法。
1.4创建对象
类名 对象名 = new 类名();
例子:
Dog erha = new Dog(); 解释: new 关键字 左边的类名 为 对象的数据类型 右边的类名() 为 类的构造方法
引用对象的属性和方法
//引用对象的属性 对象名.属性名 //引用对象的方法 对象名.方法名
1.5、包
有啥意义:包机制也是封装的一种形式
作用:
1、允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件。
2、防止命名冲突:在不同的包中可以定义相同的类名
3、允许在更广的范围内保护类、数据和方法,
定义: Package (包的关键字)
命名:全部小写字母,使用 . 分割,
第一个前缀通常为小写的ASCII 字母,并且是一个顶级域名(一般为com,edu,net,gov,org),通常为组织网络域名的逆序,如:域名为baidu.com,包可定位com.baidu.obge
后续部分依不同的机构各自内部的规范不同而不同,一般为 com.项目名.哪一层
关于声明包和导入包:
声明包的含义:是声明当前类所在的包,
导入包的含义:是声明在当前类中要使用到的其他类所在的包
1.6.this 关键字对一个对象的默认引用
用途:相当于表示这个类的类名
1、使用this调用成员变量,解决成员变量和局部变量同名冲突
不同名可以不用
2、使用this调用成员方法
3、使用this 调用重载的构造方法,只能在构造方法中使用,且必须是构造方法的第一条语句。
public Dog(String gender,int age) {
this.gender =gender;
this.age = age;
}
public Dog(String name) {
// 调用重载方法,放在第一条,调用此构造方法的时候同时给上一条赋值
this("男",11);
this.name = name;
}
this 是在对象内部指代自身的引用,所以this只能调用实例变量、实例方法和构造方法,不能调用类的变量和类方法,也不能调用局部变量。
1.7.static 关键字
为了满足 多个对象中的某些相同数据共用,使用static 修饰,可以直接通过类名.静态方法名进行调用
1、修饰方法
通过有无使用static 修饰方法分为静态方法和实例方法
使用:
//实例方法 public void showPrint1(String name) { System.out.println("输入打印:"+name); } //静态方法 public static void showPrint2(String name) { System.out.println("输入打印:"+name); }
调用:
//调用静态方法 类名。方法名 Dog.showPrint2("小红"); Dog dog = new Dog(); //调用实例方法 对象名。方法名 dog.showPrint1("小明");
注意:
静态方法中不能直接访问实例变量和实例方法
实例方法中可以直接调用类中定义的静态变量和静态方法
2、修饰变量
通过有无使用static 修饰变量分为静态变量和实例变量
package com.obge.obj; public class Yuan { //静态变量 public static String shape; //形状 //使用 final 不可以修改,常量名必须全部由大写字母组成,一定要赋值 public static final double PI = 3.14; //实例变量 public double radii; //半径 }
!!!重点注意:
a.方法重载:
定义:在同一个类中,方法名相同,参数的个数或类型不同,方法的返回值不能作为判断方法之间是否构成重载的依据
优点: 对原有的方法的一种升级,可以根据参数的不同,采用不同的实现方法,不需要编写多个名称简化了代码,也就是原来的方法只能做一件事,使用了方法重载后就可以通过传参数来做更多的事。
b.成员变量与局部变量
定义:
成员变量:直接在类中定义的变量,定义在方法的外部,
局部变量:在方法中定义的变量,
区别:
c.形参与实参:
创建方法时定义的参数表示形参
调用方法时定义的参数表示实参
d.构造方法重载
在同一个类中定义多个重载的构造方法,也就是好多个与类名相同的方法名,但是传递的参数类型和个数不同。
e.静态变量和实例变量
使用 static修饰的属性称为静态变量或类变量
没有使用 static 修饰的属性称为实例变量。
f.静态方法和实例方法
使用 static 修饰的方法称为静态方法或类方法
没有使用static修饰的方法称为实例方法
以上是关于Java 基础 ------- 面向对象(一)的主要内容,如果未能解决你的问题,请参考以下文章