java学习笔记day5
来源:互联网 发布:淘宝怎么登陆不上去 编辑:程序博客网 时间:2024/05/22 00:09
面向过程:强调的是功能行为
面向对象:将功能封装进对象,强调具备了功能的对象。
面向过程:
打开冰箱
存储进冰箱
关闭冰箱
面向对象:
冰箱.打开
冰箱.存储
冰箱.关闭
面向对象:3个特征:封装、继承、多态。
找对象,建立对象,使用对象。维护对象的关系。
类:描述。
对象:实体。
成员变量和局部变量:
作用范围:
成员变量作用于整个类中。
局部变量作用与函数中,或者语句中。
在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在栈内存中。
class Car
{
String color = "red";
int num = 4;
void run()
{
System.out.println("color+".."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
Car c = new Car();
c.num = 5;
Car c1 = c;
c1.color = "green";
c.run();
new Car().run();
//匿名对象使用方式之一:当对象的方法只调用一次时。
}
}
封装(Encapsulation)
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离,便于使用,提高重用性,提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
具体的封装行为:
/*
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。
私有只在本类中有效。
将age私有化以后,类以外即使建立了对象也不能直接访问。
但是人应该有年龄,就需要在Person中提供对应访问age的方式。
注意:私有仅仅是封装的一种形式。
*/
class Person
{
private int age;
public void setAge(int a)
{
if(a > 0 && a < 130)
age = a;
else
System.out.println("illegal age");
}
public void getAge()
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person();
//p.age = -20;
p.setAge(20);
p.speak();
}
}
构造函数
特点:
1.函数名与类名此昂同
2.不用定义返回值类型
3.不可以写return语句
作用:
给对象进行初始化。
注意:
1.默认构造函数的特点。
2.多个构造函数是以重载的形式存在的。
/*
对象一简历就会调用与之对应的构造函数。
构造函数的作用:可以用于给对象初始化。
构造函数的小细节:
当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。
构造函数在对象建立时执行且只执行一次。
*/
class Person
{
private String name;
private int age;
/*
构造代码块。
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数运行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化。
而构造函数是给对应的对象初始化。
*/
{
System.out.println("person code run");
}
Person() {
System.out.println("A:name="+name+",age="+age);
}
Person(String n) {
name = n;
System.out.println("B:name="+name+",age="+age);
}
Person(String n,int a) {
name = n; age = a;
System.out.println("C:name="+name+",age="+age);
}
public boolean compare(Person p)
{
return this.age == p.age;
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p1 = new Person();
Person p2 = new Person("lasolmi");
Person p3 = new Person("lasolmi",20);
}
}
this关键字
Person (String name)
{
this.name = name;
}
/*
this:看上去,适用于区分局部变量和成员变量同名情况。
this代表它所在函数所属和对象的应用。
*/
...
Person(String name)
{
this.name = name;
}
Person(String name,int age)
{
this(name);
this.age = age;
}
...
面向对象:将功能封装进对象,强调具备了功能的对象。
面向过程:
打开冰箱
存储进冰箱
关闭冰箱
面向对象:
冰箱.打开
冰箱.存储
冰箱.关闭
面向对象:3个特征:封装、继承、多态。
找对象,建立对象,使用对象。维护对象的关系。
类:描述。
对象:实体。
成员变量和局部变量:
作用范围:
成员变量作用于整个类中。
局部变量作用与函数中,或者语句中。
在内存中的位置:
成员变量:在堆内存中,因为对象的存在,才在内存中存在。
局部变量:存在栈内存中。
class Car
{
String color = "red";
int num = 4;
void run()
{
System.out.println("color+".."+num);
}
}
class CarDemo
{
public static void main(String[] args)
{
Car c = new Car();
c.num = 5;
Car c1 = c;
c1.color = "green";
c.run();
new Car().run();
//匿名对象使用方式之一:当对象的方法只调用一次时。
}
}
封装(Encapsulation)
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
好处:将变化隔离,便于使用,提高重用性,提高安全性。
封装原则:
将不需要对外提供的内容都隐藏起来。
把属性都隐藏,提供公共方法对其访问。
具体的封装行为:
/*
private:私有,权限修饰符:用于修饰类中的成员(成员变量,成员函数)。
私有只在本类中有效。
将age私有化以后,类以外即使建立了对象也不能直接访问。
但是人应该有年龄,就需要在Person中提供对应访问age的方式。
注意:私有仅仅是封装的一种形式。
*/
class Person
{
private int age;
public void setAge(int a)
{
if(a > 0 && a < 130)
age = a;
else
System.out.println("illegal age");
}
public void getAge()
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person();
//p.age = -20;
p.setAge(20);
p.speak();
}
}
构造函数
特点:
1.函数名与类名此昂同
2.不用定义返回值类型
3.不可以写return语句
作用:
给对象进行初始化。
注意:
1.默认构造函数的特点。
2.多个构造函数是以重载的形式存在的。
/*
对象一简历就会调用与之对应的构造函数。
构造函数的作用:可以用于给对象初始化。
构造函数的小细节:
当一个类中没有定义构造函数时,系统会默认给该类加入一个空参数的构造函数。
构造函数在对象建立时执行且只执行一次。
*/
class Person
{
private String name;
private int age;
/*
构造代码块。
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数运行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化。
而构造函数是给对应的对象初始化。
*/
{
System.out.println("person code run");
}
Person() {
System.out.println("A:name="+name+",age="+age);
}
Person(String n) {
name = n;
System.out.println("B:name="+name+",age="+age);
}
Person(String n,int a) {
name = n; age = a;
System.out.println("C:name="+name+",age="+age);
}
public boolean compare(Person p)
{
return this.age == p.age;
}
}
class PersonDemo2
{
public static void main(String[] args)
{
Person p1 = new Person();
Person p2 = new Person("lasolmi");
Person p3 = new Person("lasolmi",20);
}
}
this关键字
Person (String name)
{
this.name = name;
}
/*
this:看上去,适用于区分局部变量和成员变量同名情况。
this代表它所在函数所属和对象的应用。
*/
...
Person(String name)
{
this.name = name;
}
Person(String name,int age)
{
this(name);
this.age = age;
}
...
0 0
- java学习笔记day5
- CCNA学习笔记Day5
- Android学习笔记day5
- CSS学习笔记(Day5)
- Java学习 day5
- java学习day5
- Java学习--day5
- Java学习day5
- 机器学习学习笔记.day5
- Java 学习笔记 Day005 (补day5 的练习题)
- css-day5-个人学习笔记
- sql server学习笔记-day5
- JAVA视频笔记(day5)
- c++ 学习笔记(高级linux编程) day5
- 《python》学习笔记(Day5),继承类
- Python的学习笔记DAY5---面向对象
- IMWeb前端学习笔记——Day5
- 学习笔记(逆向汇编)Day1-Day5
- 绪论
- HDU 5012 Dice (bfs + 记忆化搜索)
- 最新 Google V8 JavaScript 编译 《二》
- CentOS 6.5服务器安全加固及性能优化
- HDU 4998 Rotate (二维图形几何变换)
- java学习笔记day5
- hdu 5012——Dice
- 《一个都不能死》游戏设计及实现
- truncate的用法
- [移动] Android推送方案分析(MQTT/XMPP/GCM)
- Climbing Stairs
- db2v8 数据迁移
- Nexus私服使Maven更加强大
- 如何开始为Rust项目贡献源代码