java笔记(2)——构造、封装、权限
来源:互联网 发布:羊绒品牌 知乎 编辑:程序博客网 时间:2024/05/16 12:57
构造方法:
1. 创建对象
2. 为字段初始化
特点:
方法名和当期类名一样;
不允许定义返回值类型
每个类至少有一个构造方法:公共无参的
格式: public 类名(){}
若显示的写了一个类的构造方法,默认的就会被取消;
构造方法的重载:
this([实参]);调用当前类的构造方法
注意: this([实参]);必须放在构造器的第一行;
我不想让外界创建对象:
此时只需要把构造方法 private 修饰;
不一定:学了反射,一切私有都是浮云;
static :
表示这一类事物的特征/状态或行为;
特点:
1. static 修饰的成员随着类的加载而加载;
2. 优先于对象的存在;
3. 被所有对象所共享;
4. 可以直接使用类名调用;
使用 static 修饰的方法或字段或内部类: 类成员
没有使用 static 修饰的方法或字段或内部类: 实例成员
调用类成员:
1.该成员所在类的类名.类成员;
2.该成员所在类的一个对象.类成员;(不建议使用, Java在底层也是把对象给转成类的)
在实例方法里能不能调用类成员? YES
在静态方法里能不能调用类成员? YES
调用实例成员:
该成员所在类的一个对象.实例成员;
不能直接使用类名调用;
在实例方法里调用实例成员? YES
在静态方法里调用实例成员? NO
匿名对象:
一个没有名字的对象, 创建了一个对象出来,没有赋给一个变量;
new Person();
特点: 只在堆里面开辟存储区域,
只能使用一次, 使用完就被销毁了;
...main...
{
Person p = new Person();
show(p);//必须传入一个Person对象
//
show(new Person());
}
static void show(Person p)
{
}
封装:
1.把状态和行为看做是一个整体,放在一个独立的模块(类)中;
2.把不想让外界知道的信息给隐藏起来,只提供外界所关心的方法;
在程序里的体现:
类里面所有的字段统统给私有起来,(使用private修饰);
每一个被私有化起来的字段,一般都得提供一对 getter/setter
private String name;
getter: 获取字段的值
public String getName()
{
return this.name;//return name;
}
setter: 给一个字段设置一个值
public void setName(String n)
{
this.name = n;
}
public void setName(String name)
{
//name = name;
//name = this.name;//ERROR
this.name = name;
}
boolean 类型没有getXXX方法,取而代之 isXXX
JavaBean的规范:
1.保证每一个类都有一个无参的公共的构造方法
2.每一个字段都得私有化起来
3.私有化起来之后,必须提供getter/setter
怎么去写getter/setter?
1.若字段的第二个字母是小写的话,那么就直接把字段的第一个字母大写,然后加在gett或set后面
2.若字段的第二个字母是大写的话,那么就直接把字段加在get或set后面
private String cPU;//故意写的
public String getcPU()
{
return cPU;
}
public void setcPU(String cPU)
{
this.cPU = cPU;
}
属性:什么才是真正的属性呢? 不是字段,不能把字段成为属性
是根据getter与 setter决定的:
this: 表示当前对象
谁调用方法谁就是当前对象
this.字段
this.方法
this(参数);//构造器调用构造器
this 和 static 不能共用
// 一个对象调用OOXX方法之后,又继续调用OOXX方法,如此循环...
//链式编程
p.show().show().show().show();
class Person
{
public Person show(){
//return Person的对象;
return this;
//返回调用者对象
}
}
//show()必须得让Person的一个对象来调用
new Person().show().show();
package 表示包:
给一个类声明一个包:
在这个类的源文件的第一行
package 包名.子包名...;
全限定名: 包名.子包名.....类名
编译:javac -d . 源文件.java
运行:java 全限定名
包名必须符合标识符: 全小写,不能使用 jdk里面的包名
cn.itcast.cd.项目名.模块名.组件名
cn.itcast.cd.erp.crm.util
jdk常见的包;
java.lang;//Java核心包使用这个包下的类的时候,不需要我们手动的去导入需要使用的类
java.util;//Java工具类包
import: 表示 去哪个包下去找使用到的类;
存放位置: 存放于 类的声明之前, 放在 package 的后面;
使用: java.util.Date
import java.util.Date;
import java.util.*; 去java.util包去找你当前源文件需要使用到的类;
*表示类,
不能表示java.util下的子包的类;
Java里四大访问权限修饰符:
当前类 当前包 子类 任何地方
private YES
default(不写访问权限)YES YES
protected YES YES YES
public YES YESYES YES
- java笔记(2)——构造、封装、权限
- JAVA面向对象知识点总结(2)—封装、构造函数、构造代码块、this关键字
- java个人学习笔记07(封装+构造函数+this)
- Java基础——面向对象+(匿名)对象+封装(修饰符权限)+变量+构造函数+This关键字
- java笔记之封装,构造,重装
- 黑马程序员——Java基础---面向对象(封装、构造函数)(2)
- JAVA——(2)OOP面向对象、封装、继承、多态、this、构造方法
- Java反射笔记2—构造器
- 黑马程序员——java基础_封装、构造函数
- Java复习——属性的封装与构造方法
- 黑马程序员——java第五天:面向对象(类、对象、变量、封装、构造、this)
- 黑马程序员——Java语言基础:面向对象、封装(构造函数、设计模式)
- 《黑马程序员》java笔记->【02】关于封装,构造函数
- 20150902 Java学习笔记-构造方法,关键字,封装性
- java学习笔记3封装和构造函数
- 【Java学习笔记】数组,封装,构造与关键字
- JAVA笔记七 (25-29包和访问权限(封装性)及接口)
- Java学习笔记(二)——封装、继承、多态
- How to install LAMP (Apache/PHP/MySQL)?
- c#怎么样让double或者float保留2位小数
- Oracle checkpoint详解
- Working Practice-代码独立成块
- Android面试题
- java笔记(2)——构造、封装、权限
- EGORefreshTableHeaderView 使用心得
- 半夜感言
- Android开发中的多线程编程技术
- 最专业的PHP培训课程就在广州传智播客
- How scalable is OpenVZ?
- Android使用嵌入式关系型SQLite数据库存储数据
- 介绍一下Android的开机流程
- Android 面试题(有详细答案)