java学习笔记(七)类的高级概念

类的高级概念包括:访问修饰符、封装、静态成员、初始化块以及内部类等混合内容。

访问修饰符:

(1).公开访问级别:使用public关键字修饰。用public关键字修饰的成员对外公开,即公开成员可以被任何其它对象访问。

(2).受保护访问级别:使用protected关键字修饰。受保护的成员可以被同一包中的类所访问,还可以被类的子类所访问,不管子类是在哪个包中。

(3).默认访问级别:没有访问修饰符。默认访问级别的成员可以被同一包中的其它类所访问。

(4).私有访问级别:使用private关键字修饰。它是四种访问修饰符中级别最低的。私有成员只有类本身可以访问,不对外公开。

类本身也有访问修饰符。但是累的访问修饰符只有公有的和默认的两种。

封装:封装是使类中的成员变量都是private,并提供public方法访问这些成员变量的技术。如果一个成员变量被声明为private,那么它就不能被其它类访问,从而隐藏了类中的成员变量。因此封装也被称为数据隐藏。

继承、封装、多态、抽象是面向对象编程的四大基本概念。

允许获取成员变量的get方法称为访问器(accessor)方法,允许修改成员变量的get方法称为修改器(mutator)方法。

public class SalesPerson{

private String name;

private int id;

//无参构造器

public SalesPerson(){

}

//有参构造器

public SalesPerson(String name,int id){

super();

this.name = name;

this.id = id;

}

public void setName(String name){

name = name;

}

public void getName(){

return name;

}

public void setId(int id){

id=id;

}

public void getName(){

return id;

}

}

在写get(),set()方法时注意命名的方式,一般在应用程序上有自动生成这些方法的操作。

封装的好处:类的成员变量可以成为只读或者只写的;类可以对存储在其成员变量中的内容有一个整体的控制;类的用户不需要知道类是如何存储数据的,实现代码的重用。

静态成员:关键字static允许成员变量或方法不与类的特定实例关联。通过关键字static声明的成员变量或方法可以被认为是全局的,任何其它类可以直接访问静态成员变量或调用静态方法,而不需要该类的一个实例。

类的静态成员经常被称为类成员,因为静态成员与类相关,而不是某个实例。非静态的成员变量和方法经常被称为实例成员,因为非静态的成员变量和方法只存在于类的实例中。

静态方法不能访问非静态成员。

实例初始化块:

/**

*父类

*/

public class Electronics{

public Electronics(){

System.out.println("构造一个电子设备");

}

}

/**

*实例初始化块

*/

public class CDPlayer extends Electronics{

private int songNumber;

public CDPlayer(int x){

super();

System.out.println("构造一个CD播放机");

songNumber=x;

}

{

System.out.println("在实例初始化块内");

}

}

/**

*运行

*/

public class InstanceInitDemo{

public static void main(String [] , args){

System.out.println("在main方法内");

CDPlayer  c1 = new CDPlayer (1);

CDPlayer  c2 = new CDPlayer (7);

}

}

发生顺序:

子类中相应的构造器被调用;执行对super的调用,控制流程跳转到相应的父类构造器;父类构造器执行完,控制流程跳转回子类构造器;在该子类构造器中的super()后面的任何语句执行前,实例初始化块执行;最后,执行子类构造器中super()后面的语句。

内部类:

静态内部类:作为类的静态成员,存在于某个类的内部;

成员内部类:作为类的成员,存在于某个类的内部;

局部内部类:存在于某个方法内部的类;

匿名内部类:存在于某个类的内部,但是无类名的类。

时间: 2024-12-21 06:02:46

java学习笔记(七)类的高级概念的相关文章

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

Java学习笔记——File类之文件管理和读写操作、下载图片

Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图片 文件和文件夹 相关函数 (boolean) mkdir() 创建此抽象路径名指定的目录  (boolean) mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录. (boolean) delete() 删除此抽象路径名表示的文件或目录 (boolean) createNe

Java学习笔记_19_String类

19.String类: 1>String类的构造方法: · 利用字符串构造一个字符串对象: String str = "HelloWorld": · 无参构造一个字符串对象: String str = new String(); · 传递参数生成一个字符串对象: String str = new String("HelloWorld"); · 由字符数组生成一个字符串对象: String str = new String(char s[ ]); · 由字符数组

Java学习笔记—复用类

复用代码是Java众多引人注目的功能之一. 一般而言,实现代码重用java提供了两种方式:组合以及继承. 组合:新的类由现有类的对象所组成.(复用现有代码的功能,而非它的形式) 继承:按照现有类的类型组建新类.(在不改变现有类的基础上,复用现有类的形式并在其中添加新代码). 组合 class Engine{ public void start(){} public void stop(){} } class Door{ public void open(){} public void close

Java学习笔记七——数组工具类Arrays

数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> asList(T... a) 作用:将指定数组或数组元素,转换成固定大小的List. 用法: String[] strArr = { "aaa", "bbb", "vvv" }; //用法1:参数是数组引用 List<String> li

Java学习笔记1——类和对象

面向对象 对象:万物皆对象 面向对象 类:模子,属性+方法,类是对象的类型,是具有相同属性和方法的一组对象的集合 对象属性:对象拥有的各种特征,"对象有什么" 对象方法:对象执行的操作,"对象能干什么" 类与对象的关系/区别:类是抽象的,仅仅是模版:对象是看得到,摸得着的具体实体.例如:'手机'类,对象为iPhone6,Lumia920 Java中的类 定义类:Java程序都以类class为组织单元 创建一个对象 //1.定义一个类 public class Tel

黑马程序员——JAVA学习笔记七(String类)

1,    String类一旦被初始化就不会被改变. 字符串不不能被改变,编译可以让字符串之间共享.编译器将各种字符串存放在公共的存储池子中.字符串变量指向存储池中相应的位置.实际上只有字符串常量.而+(除了常量相加)和其它方法操作的不是共享的. String s1 ="abc" ,String s2 = "abc" (他们存在公共池中),String s3 = new String ("abc"),存在堆中; 则s1== s2; s1! = s

Java学习笔记-3.类与对象

一.面向对象程序设计 1.概念:   OOA:面向对象的分析,将现实世界进行抽象的分析 OOD:面向对象的设计 OOP:面向对象的程序 2.面向对象的特点: (1)封装性:一是把对象的全部状态和行为结合在一起,形成一个不可分割的整体,对象的私有属性只能由对象的行为来修改和读取 二是尽可能隐藏对象的内部细节,与外界的联系只能够通过外部接口来实现 (2)继承性:特殊类的对象拥有其一般类的属性和行为 (3)多态性:指同一个实体同时具有多种形式,体现在不同的对象可以根据相同的消息产生各自不同的动作 二.

java学习笔记--常用类

一.Math类:针对数学运算进行操作的类 1.常用的方法 A:绝对值   public static int abs(int a) B:向上取整  public static double ceil(double a) C:向下取整 public static double floor(double a) D:两个数据中的大值 public static int max(int a, int b) E:a的b次幂 public static double double pow(double a

java学习笔记——String类

一.概述 ·字符串是一个特殊的对象 ·字符串一旦初始化就不可以被改变 ·String str = "abc"; ·String str1 = new String("abc"); 有什么区别? package com.java.study.StringDemo; public class StringDemo { public static void main(String[] args) { String s1 = "abc"; //s1是一个