黑马程序员----java基础之面向对象
来源:互联网 发布:大岭山淘宝培训 编辑:程序博客网 时间:2024/04/30 23:37
封装: 是隐藏对象的属性和细节,仅对外提供公共的访问方式。
好处:将变化隔离
便于使用
提供重用性
提供安全性
封装的原则:
将不需要对外提供的内容隐藏起来
将属性都隐藏,提供公共方法对其访问。
private: 私有的,权限修饰符 :用于修饰类中的成员(成员变量,成员方法), 私有属性只能在本类中有效。
成员变量对应的有两个方法,get和set :
class Person
{
private int age ;
public void setAge(int a)
{
age = a ;
}
public int getAge()
{
return age;
}
}
私有private 仅仅是封装的一种表现形式,私有不等于封装。
使用私有的好处是,可以在set中设置属性的访问范围,提高代码的健壮性。
例如:
class Person
{
private int age ;
public void setAge(int a)
{
if (a>=0 && a<=150)
{
age = a ;
}else
{
System.out.println("输入年龄不合法");
}
}
public int getAge()
{
return age;
}
}
构造函数:
特点:1 函数名与类名相同
2 不可以定义返回值类型
3 不可以些return语句
作用: 用于给对象初始化
注意:多个构造函数是以重载的形式存在的
定义格式:
class 类名{
访问权限 类名称(类型1 参数1,类型2 参数2,。。。。)
{
程序语句;
//没有返回值
}
}
构造方法在创建对象之后就会被调用。
构造方法可以被重载。
person(){}
person (String name)
{
this.setNmae(name);
}
person (String name,int Age)
{
this.setName(name);
this.setAge(age);
}
三种重载的形式。
在主函数调用的时候,就可以根据传入的值不同调用。
Person p1 = new Person("张三");
Person p2 = new Person("李四","30");
构造函数和一般函数的不同:
1:在写法上不同
2:运行不同
3:构造函数在对象义建立就运行,一般方法在调用的时候才会运行。
4:构造方法是给对象初始化,一般方法是给对象添加具备的功能。
5: 一个对象建立,构造函数只运行一次;而一般方法可以被该对象调用多次。
构造代码块:
class Person{
{
System.out.peintln();
}
}
构造代码块:
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
区别:
构造代码块是给所有的对象进行统一初始化。
构造函数是给相对应的对象初始化。
this关键字:
this强调的是调用本类中的方法。
this的其他作用:1:表示类中的属性
2: 可以使用this调用本类中的方法
3 :this表示当前对象。
this代表他所在方法所属对象的引用,也就是说,哪个对象在调用this所在类中的方法,this就代表哪个对象。
this可以调用构造函数,格式:this();
注意:this调用构造函数的时候,必须写在构造函数的首行
一个类中,必须有一个没有this()调用的构造函数,作为出口。
构造函数间的调用只能用this()。
- 黑马程序员----JAVA基础之面向对象
- 黑马程序员----java基础之面向对象
- 黑马程序员----Java基础之面向对象
- 黑马程序员--JAVA基础之面向对象
- 黑马程序员-JAVA基础之面向对象
- 黑马程序员----java基础之面向对象
- 黑马程序员----java基础之面向对象
- 黑马程序员-JAVA基础之面向对象
- 黑马程序员 Java基础之面向对象
- 黑马程序员--Java基础--面向对象基础
- 黑马程序员-----java基础(面向对象基础)
- 黑马程序员---Java基础--06天(面向对象之二)
- 黑马程序员---Java基础--07天(面向对象之三)
- 黑马程序员---Java基础--08天(面向对象之三多态)
- 黑马程序员-----java基础三(之面向对象)
- 黑马程序员-java学习基础04-面向对象之继续
- 黑马程序员--Java基础之面向对象总结(一)
- 黑马程序员---java基础之面向对象(二)
- Beyond Compare 3在windows和linux下实现提取增量包
- UDK 坦克初步实现
- Facebook将在本月发布类Flipboard阅读器
- 数据结构 -- 双向循环链表
- 【Twitter Storm系列】flume-ng+Kafka+Storm+HDFS 实时系统搭建
- 黑马程序员----java基础之面向对象
- Ubuntu工具集合
- 那些强悍的PHP一句话后门
- epoll 惊群
- UINavigationController和UITabBarController共存的例子
- apache上传扩展
- pentesterlab xss漏洞分析
- 众包app测试初创企业Utest获4300万美元融资
- 女强人不是强在外表,而是强在内心