java新手笔记11 类的静态属性、方法(单例)
1、Person类
package com.yfs.javase;
public class Person {
String name;//每个对象上分配 与对象绑定
int age;
char sex;
boolean married;
static String country = "中国";//静态属性 与类绑定 所有对象共享
public static void baseInfo () {//静态方法 与类绑定 所有对象共享
System.out.println("舌尖上的中国...");
//method() ;//静态方法不能调用非静态方法
//String n = name;//静态方法不能访问非静态属性
String n = country;
}
public void test () {//非静态方法
System.out.println("call test() ....");
name = "Tom";//访问非静态属性
String s = country;//访问静态属性
System.out.println("s = " + s);
//调用静态方法
baseInfo();
}
public void method () {
System.out.println("method() ....");
}
}
2.Person测试1
package com.yfs.javase;
public class PersonTest {
public static void main(String[] args) {
Person p1 = null;
p1 = new Person();
p1.name = "张三";
Person p2 = new Person();
p2.name = "李四";
System.out.println("p1.name " + p1.name);
System.out.println("p2.name " + p2.name);
System.out.println("=========================");
p1.name = "王五";
System.out.println("p1.name " + p1.name);
System.out.println("p2.name " + p2.name);
//静态属性通过类名访问
System.out.println("Person.country " + Person.country);
p1.country = "日本";
System.out.println("Person.country " + Person.country);
System.out.println("p2.country " + p2.country);
// Person.baseInfo();//静态属性 方法通过类访问
// p1.baseInfo();
// p2.baseInfo();
p1.test();
}
}
3.测试Person2
package com.yfs.javase;
public class PersonTest1 {
public static void main(String[] args) {
Person p1 = null;//类加载
System.out.println(Person.country);
Person.baseInfo();
//p1.name = "张三";
}
}
4.Person 类2(代码块、静态代码块)
package com.yfs.javase;
public class Person {
String name;// 每个对象上分配 与对象绑定
int age;
char sex;
boolean married;
// 代码块 执行时机 创建对象时执行
{
System.out.println("这是代码块的内容");
}
// 静态代码块 与类绑定 只执行一次
static {
System.out.println("这是静态代码块内容....");
}
public Person() {
System.out.println("创建Person对象");
}
public Person(String name) {
System.out.println("Person(name) ....");
this.name = name;
}
public Person(String name, int age, char sex, boolean married) {
// this(name);//构造方法调用
this.name = name;
this.age = age;
this.sex = sex;
this.married = married;
System.out.println("四个参数的构造方法...");
}
static String country = "中国";// 静态属性 与类绑定 所有对象共享
public static void baseInfo() {// 静态方法 与类绑定 所有对象共享
System.out.println("舌尖上的中国...");
String n = country;
}
public void test() {// 非静态方法
System.out.println("call test() ....");
name = "Tom";// 访问非静态属性
String s = country;// 访问静态属性
System.out.println("s = " + s);
// 调用静态方法
baseInfo();
}
public void method() {
System.out.println("method() ....");
}
}
5.Person类 2 测试
package com.yfs.javase;
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person("张三",20,'男',false);
Person p2 = new Person();
Person p3 = new Person("李四");
}
}
6.Person类3 (private 属性、方法、get/set方法)
package com.yfs.javase;
public class Person {
// 属性私有private
private String name = "Jack";// 每个对象上分配 与对象绑定
private int age;
private char sex;
private boolean married;
static String country = "中国";// 静态属性 与类绑定 所有对象共享
//查看对象的属性值
public String toString() {
return "name = " + name + ", age = " + age + ", sex = " + sex + ", married = " + married;
}
{
name = "Tom";
}
// 设置方法 参数
// public void setAge(int age) {
// if (age > 150) {
// System.out.println("年龄不合法");
// return;
// }
// this.age = age;
// }
//
// // 获取的方法
// public int getAge() {
// return age;
// }
// 通过get set方法 设置 获取属性的值
public Person() {
System.out.println("创建Person对象");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
public Person(String name) {
this.name = name;
}
public Person(String name, int age, char sex, boolean married) {
this.name = name;
this.age = age;
this.sex = sex;
this.married = married;
}
public static void baseInfo() {// 静态方法 与类绑定 所有对象共享
System.out.println("舌尖上的中国...");
//method();静态方法不能访问
}
public void test() {// 非静态方法
System.out.println("call test() ....");
method();//在同一类中私有属性 方法可以调用
}
private void method() {//私有方法 范围在类的内部访问
System.out.println("method() ....");
//test();
baseInfo();
String n = name;
}
}
7.Person类3测试
package com.yfs.javase;
public class PersonTest {
public static void main(String[] args) {
Person p1 = new Person("张三",20,'男',false);
System.out.println(p1.toString());
// System.out.println("p1.name = " + p1.name);
// System.out.println("p1.age = " + p1.age);
// System.out.println("p1.sex = " + p1.sex);
// System.out.println("p1.married = " + p1.married);
//p1.name = "张飞";
//修改年龄 通过方法
//p1.age = 2000;
p1.setAge(2000);
p1.setAge(28);
p1.setName("张XX");
System.out.println("p1.getName() = " + p1.getName());
System.out.println("p1.getAge() = " + p1.getAge());
System.out.println("p1状态: " + p1.toString());
p1 = new Person("张三",21,'男',false);
//p1.method();//私有方法不能访问
}
}
8.单例对象 模型
package com.yfs.javase;
public class Singleton {
private Singleton () {
}
//通过一个对象 声明static
public static Singleton getInstance() {
Singleton s = new Singleton();
return s;
}
public void eat() {
System.out.println("eat().....");
}
}
9.单例对象测试
package com.yfs.javase;
public class Test {
public static void main(String[] args) {
//Singleton sing = new Singleton();
Singleton sing = Singleton.getInstance();
sing.eat();
}
}
java新手笔记11 类的静态属性、方法(单例)的更多相关文章
- java新手笔记9 类的封装示例
1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 ...
- Java学习笔记(二十四):单例设计模式singleton
为什么要使用singleton设计模式? 假设设计了一个操作数组的工具类(Tools),里面有一个锤子的方法(Hammer),如果不使用singleton设计模式,每次想调用Hammer方法都需要ne ...
- java新手笔记18 类比较
1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 // ...
- java新手笔记5 类
1.进制转换 /* 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可提成7.5 ...
- java新手笔记14 类继承示例
1.Person package com.yfs.javase; public class Person { private String name; private int age; private ...
- Java 8 Collectors 类的静态工厂方法
摘自<<Java 8 实战>> Collectors 类的静态工厂方法 工厂方法 返回类型 用于 toList List<T> 把流中所有项目收集到一个 List ...
- java类的静态属性值获取
获取某个类实例的静态属性: public class ErrorCode { private String code; private String message; private ErrorCod ...
- JS面向对象(3) -- Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
相关链接: JS面向对象(1) -- 简介,入门,系统常用类,自定义类,constructor,typeof,instanceof,对象在内存中的表现形式 JS面向对象(2) -- this的使用,对 ...
- MobX基础 ----- 类的静态属性和装饰器
当我们使用MobX的时候,首先要声明一个store, 用来保存状态,它的最基本的语法 如下: class Todo { @observable title = ""; @obser ...
随机推荐
- 微软Azure运营方世纪互联遭做空后强劲反弹
http://www.cnblogs.com/sennly/p/4135594.html 最近几天微软Azure的运营方世纪互联被Trinity做空,股价震荡巨大,先让我们回顾下整个事件: 9月11日 ...
- mysql 一个较特殊的问题:You can't specify target table for update in FROM clause
mysql 一个较特殊的问题:You can't specify target table for update in FROM clause 即:不能先select出同一表中的某些值,再update ...
- SpringTest 使用说明 -构建无污染纯绿色事务测试框架 (记录用)
@ContextConfiguration({"classpath:applicationContext.xml","classpath:spring/buyer/app ...
- Topology拓扑
- 问题.NET访问 IIS 元数据库失败。
问题现象:访问 IIS 元数据库失败. 说明:执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.We ...
- nyoj 540 奇怪的排序
奇怪的排序 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 最近,Dr. Kong 新设计一个机器人Bill.这台机器人很聪明,会做许多事情.惟独对自然数的理解与人类 ...
- linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...
- C#基础知识学习手记1
这篇随笔主要用来记录我在C#学习过程做的笔记,算作是一门课程中的小知识点吧. 1. 变量和表达式 1.1 如何在输出带有引号(英文双引号.英文单引号)以 ...
- 14周事情总结-机器人-大数据hadoop
14周随着考试的进行,其他该准备的事情也在并行的处理着,考试内容这里不赘述了 首先说下,关于机器人大赛的事情,受益颇多,机器人的制作需要机械和电控两方面 昨天参与舵机的测试,遇到的问题:舵机不动 排查 ...
- 大型网站都喜欢把js写在html中的真正原因
相信经常观察大站的朋友都会发现,他们都把CSS写在HTML页面里,一个页面的或者多个页面的背景图片,都集成到一张图片里,他们有的JS文件,也写到页面里了……也许你会迷惑,现在到处讲页面的优化,不都是要 ...