Java SE 第十讲 面向对象_封装

el/2024/2/25 23:07:58
[color=red][size=medium][b]Java SE 第十讲[/b][/size][/color]


1. 类中的属性又叫做成员变量(member variable),属性用英文表示为property或者attribute。


2. 对象(Object)又叫做实例(Instance)。生成一个对象的过程又叫做实例化。


3. 命名约定
a) 类:首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不使用任何的连接符。比如Person类,MemberTest类。
b) 方法:首字母小写。如果一个方法由多个单词构成,那么第一个单词的所有字母全都小写,从第二个单词开始,每个单词的首字母大写。比如add,addThreeInt。
c) 属性:命名约定与方法相同。比如age,ageOfPerson。


[color=red]4. 属性需要定义在类中,又叫做成员变量;而定义在方法中的变量叫做局部变量。[/color]


5. 如何定义属性?
public class Person
{
修饰符 类型 属性名称;
}
如何使用属性?与方法一样,使用.运算符。首先需要生成类的实例,然后使用实例+”.”的方式来使用属性。
比如:
Person person = new Person();
person.age


[b][color=red]6. 局部变量使用前必须要声明并赋初值;成员变量使用前必须要声明,但可以不赋初值。[/color][/b]


7. 成员变量与局部变量的联系与区别:
[color=red]a) 无论是成员变量还是局部变量,使用前都需要声明(定义)。
b) 对于局部变量来说,使用前必须要初始化;对于成员变量来说,使用前可以不初始化。如果没有初始化成员变量就开始使用,那么每个类型的成员变量都有一个默认的初始值
i. byte、short、int、long类型的初始值为0
ii. float、double类型的初始值为0.0
iii. char类型的初始值‘\u0000’
iv. boolean类型的初始值为false[/color]


[color=red][b]8. 引用类型(reference type):引用类型是用在对象上的。一个对象可以被多个引用所指向,但同一时刻,每个引用只能指向唯一的一个对象。如果一个对象被多个引用所指向,那么无论哪个引用对对象的属性进行了修改,都会反映到其他的引用当中。[/b][/color]



public class People
{
int age = 20;

public void change(People people)
{
people = new People();//这行注释掉 则下面main的打印结果为 20 ; 30

people.age = 30;
}

public static void main(String[] args)
{
People people = new People();

int age = people.age;

System.out.println(age);

people.change(people);

int age2 = people.age;

System.out.println(age2);
}


}

http://www.ngui.cc/el/4893617.html

相关文章

Java SE 第十一讲 面向对象 封装

[sizemedium][colorred][b]Java SE 第十一讲[/b][/color][/size] [sizemedium][colorred][b]1. 如果一个类包含了属性与方法,那么该类的每一个对象都具有自己的属性(先不考虑static),但无论一个类有多少个对象,这些对象共享同一个方法。[/b][…

Java SE 第12、13、14、15、16、17、18讲

[sizemedium][b][colorred]JAVA SE Lesson 1(第12、13、14、15:回顾之前11讲;16讲前半部分:回顾之前11讲,后半部分面向对象新内容;17、18讲新内容)[/color][/b][/size] 1. 类是一种抽象的概念&a…

不用Struts2标签 拿到OGNL值栈的值_转

首先WEBWORK的核心机制是OGNL,于是追了一下有关XWORK的代码,发现了OgnlValueStack这个有趣的东东很明显一个存放值的堆栈于是在网上搜索了一下关于OgnlValueStack的相关最后的解决方法是:在jsp中引入<% page import"com.opensymphony.xwork.util.OgnlValueStack"%…

Windows 7 安装Oracle 10g (转)

(系统版本 Windows 7 旗舰版)Windows 7真是让人又爱又恨啊&#xff01;本人电脑之前已安装 SQL Server 2005&#xff0c;安装过程都没什么问题&#xff0c;很快搞定&#xff0c;可是装一个Oracle 10g却花了我一个晚上的时间&#xff01;不过总算安装成功了&#xff01;虽然还没…

Oracle10g学习一: Oracle的安装

1、安装前置&#xff0c;环境设置 详见&#xff1a;[urlhttp://mozzz.iteye.com/admin/blogs/1539961][b]Oracle10g安装前准备[/b][/url] 2、解压安装包&#xff0c;点击里面的db\Disk1\setup.exe 如图&#xff1a; [img]http://dl.iteye.com/upload/attachment/0068/6078/9f…

Java SE 19-24讲 Lesson2

1. 多态&#xff1a;父类型的引用可以指向子类型的对象。[colorred] 具体指向的是父类的对象还是子类的对象只有在运行的时候才确定&#xff0c;编译的时候不确定。[/color] 2. Parent p new Child();当使用多态方式调用方法时&#xff0c;首先检查父类中是否有sing()方法&…

Struts1_学习笔记1_struts0100_login

Action:单实例&#xff08;单例&#xff09;&#xff0c;多线程使用时如果有可以修改的成员属性要注意线程安全 ActionForm一般是粗粒度的&#xff0c;一般一个模块对应一个ActionForm Action: public ActionForward execute(ActionMapping mapping, ActionForm form, HttpS…

Struts1_学习笔记3_struts0300_taglib_bean_logic_Iterate标签

bean标签&#xff1a; Action: public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // 普通属性 request.setAttribute("hello", "Hello World"…

GoF与J2EE设计模式差别

GoF: 《Design Patterns: Elements of Reusable Object-Oriented Software》&#xff08;即后述《设计模式》一书&#xff09;&#xff0c;由 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 合著&#xff08;Addison-Wesley&#xff0c;1995&#xff09;。这几位…

Struts1_学习笔记4_struts0400_jstl_EL表达式_核心库

[colorred]1、使用JSTL&#xff0c;Servlet最低版本&#xff1a;2.4&#xff0c;查看Servlet版本方式&#xff1a;web.xml[/color] [colorred]2、JSTL可以操作数据库&#xff0c;XML[/color] [b][sizemedium][colorblue]3、表达式一&#xff1a;EL表达式&#xff1a;[/color][/…