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

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

3.命名约定

a)类:首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不适用任何的连接符

b)方法:首字母小写,如果一个类名由多个单词构成,那么第一个单词的首字母小写,后面第一个首字母都大写,中间不适用任何的连接符

c)属性:命名约定与方法相同,比如age,ageOfPerson

4.属性需要定义在类中,又叫做成员变量,而定义在方法中的变量叫做局部变量。

5.如何定义属性?

public clss Person

{

  修饰符 类型 属性名称;

}

如何使用属性?与方法一样,使用点.运算符。首先需要生成实例,然后使用实例+“.”的方式来使用属性。

比如:

Person person = new Person();

person.age();

6.局部变量使用前必须声明并赋予初值,成员变量使用前必须要声明,但可以不赋予初值。

9.分析以下两个结果

package myPractice;

public class Person {
int age = 20;
public void change(Person people){
people.age = 30;
}
public static void main(String[] args){
Person people = new Person();
int age = people.age;
System.out.println(age);
people.change(people);
int age2 = people.age;
System.out.println(age2);
}

people类型的引用,指向了对象20,方法执行后将对象值变成了30,所以是30

public class Person {
int age = 20;
public void change(Person people){
people = new Person();
people.age = 30;
}
public static void main(String[] args){
Person people1 = new Person();
int age = people1.age;
System.out.println(age);
people1.change(people1);
int age2 = people1.age;
System.out.println(age2);
}

执行结果是20,20 ,在change方法中new了一个people,将该people变为30,但是之前的那个还是20,调用方法也是调用之前的people的age

Java SE 第十讲---面向对象特征之封装2的更多相关文章

  1. Java SE 第十一讲----面向对象特征之封装2

    1.如果一个类包含了属性跟方法,那么该类的每一个对象都具有自己的属性,但无乱一个类有多少个对象,这些对象共享同一个方法. 2.关于方法参数传递的总结: 对于Java中的方法参数传递,无论传递的是原生数 ...

  2. Java SE 第九讲---面向对象特征之封装1

    1.面向对象程序设计的三大基本特征:继承(Inheritence).封装(Encapsulation).多态(Polymorphism) 2.封装:类包含数据与方法,将数据与方法放在一个类中就构成了封 ...

  3. Java第三次作业——面向对象基础(封装)

    Java第三次作业--面向对象基础(封装) (一)学习总结 1.什么是面向对象的封装性,Java中是如何实现封装性的?试举例说明. 封装性 封装性是面向对象的方法所应遵循的一个重要原则,它有两个含义: ...

  4. Java SE 第十六讲----面向对象特征之继承

    1.继承(inheritance):Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类也叫[基类 baseclass]),继承的类叫做子类,java中的继承使用extends关键字 ...

  5. Java SE 第十六讲----面向对象特征之多态

    1.多态:polymorphism:我们说的子类就是父类(玫瑰是花,男子是人),因此多态的意思就是:父类型的引用可以指向子类的对象 public class PolyTest { public sta ...

  6. Java SE 第二十四讲----static与final使用陷阱关键字

    1.对于final类型成员变量,一般来说有两种赋值方式: a)在声明final类型的成员变量时就附上初值 package com.cl.staticandfinal; public class Fin ...

  7. Java SE 第二十二讲----接口interface

    1.接口:interface:接口的地位等同于class,接口中的所有方法都是抽象方法.在声明接口中的方法的时候,可以使用abstract关键字也可以不使用.通常情况下,都会省略掉abstract关键 ...

  8. Java SE 第十六讲----方法重载

    1.方法重载(Overload):表示两个或多个方法名字相同,但方法参数不同 不同:1)参数个数不同: 2)参数类型不同: 注意:方法的返回值对重载没有任何影响 2.构造方法重载,只需看参数即可.如果 ...

  9. Java SE 第二十三讲----static关键字and final关键字

    1.static关键字 [在二十二讲视频中30分钟开始讲授] 2.static修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯一一份静态的成员变量:一个对象对该静态成员变量进行了修改,其他 ...

随机推荐

  1. OpenJudge计算概论-求出e的值

    /*======================================================================== 求出e的值 总时间限制: 1000ms 内存限制: ...

  2. ECS 安装redis 及安装PHPredis的扩展

    安装redis 1.一条命令就行了:apt-get install redis-server 2.wget http://download.redis.io/releases/redis-3.0.7. ...

  3. Format可能存在的坑

    import java.text.MessageFormat; public class TestFormat { public static void main(String[] args) { / ...

  4. oracle 行转列的例子

    with test as(select '1' bit from dual union select '0' from dual )select replace(sys_connect_by_path ...

  5. spring 中事务的PROPAGATION_REQUIRED,Readonly的解释

                 一.事务传播行为种类 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为, 它们规定了事务方法和事务方法发生嵌套调用时事务如何进行传播 ...

  6. [java]序列化框架性能对比(kryo、hessian、java、protostuff)

    序列化框架性能对比(kryo.hessian.java.protostuff) 简介:   优点 缺点 Kryo 速度快,序列化后体积小 跨语言支持较复杂 Hessian 默认支持跨语言 较慢 Pro ...

  7. Python 定制类与其对象的创建和应用

    1.创建新类Athlete,创建两个唯一的对象实例sarah james,他们会继承Athlete类的特性 >>> class Athlete: def __init__(self, ...

  8. Bind 跨域名别名解析的问题

    我有一个域名 aaa.net 已经生效 ,并且下面有 xx的 A记录:现在我还有一个 aaa.com域名 ,我想用 别名方式把它下面 某个 记录以别名方式解析到 xx.aaa.net上去.应该在aaa ...

  9. golang获取字符串长度需要注意的地方

    中文长度,直接贴代码 package main import ( "fmt" "unicode/utf8" ) func main() { aa := &quo ...

  10. JavaScript-CheckBox全选/反选

    //------------------------------------ // 全/反选 // param checkName checkbox的name属性 //---------------- ...